值等于dimens.xml中的match_parent或fill_parent?
基于XML Attributes部分,我在我的dimens.xml
指定了以下dimens.xml
:
<dimen name="match_parent">-1dp</dimen> <dimen name="main_left_menu_user_account_width">@dimen/match_parent</dimen> <dimen name="main_left_menu_user_account_height">@dimen/match_parent</dimen>
然后我在我的布局中使用这两个维度:
<ImageView android:id="@+id/userAccountImage" android:background="@drawable/user_account" android:layout_width="@dimen/main_left_menu_user_account_width" android:layout_height="@dimen/main_left_menu_user_account_height" />
然后,当我预览到Graphical Layout
,它抱怨:
您必须提供一个layout_width属性。
您必须提供一个layout_height属性。
其实我可以在dimens.xml
定义一个等于match_parent的值吗?
更新:
我也试过,但预览仍然抱怨:
<dimen name="main_left_menu_user_account_width">-1dp</dimen> <dimen name="main_left_menu_user_account_height">-1dp</dimen>
我成功地使用了wrap_content
( Graphical Layout
根本不抱怨):
<dimen name="wrap_content">-2dp</dimen> <dimen name="main_right_menu_width">@dimen/wrap_content</dimen> <dimen name="main_right_menu_height">@dimen/wrap_content</dimen>
使用这个,它适用于我
<dimen name="custom_wrap_content">-2dp</dimen> <dimen name="horizontal_border_height">@dimen /custom_wrap_content</dimen> <dimen name="custom_match_parent">-1dp</dimen> <dimen name="vertical_border_height">@dimen /custom_match_parent</dimen>
而match_parent
的原因不运行。 你不能像关键字match_parent
那样提供构build
首先创buildattribs.xml:
<resources> <item name="match_parent" type="dimen">-1</item> <item name="wrap_content" type="dimen">-2</item> </resources>
其次使用你的维度:
<dimen name="account_width">@dimen/match_parent</dimen> <dimen name="account_height">@dimen/wrap_content</dimen>
根据你想在@dimen中定义match_parent
的原因,这个用例可以帮助你:
不要在dimen.xml中定义宽度和高度,而是可以在styles.xml中将其定义为样式
我用
//res/values/styles.xml <style name="IntroLayout"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> </style>
和
//res/values-sw600dp/styles.xml <style name="IntroLayout"> <item name="android:layout_width">520dp</item> <item name="android:layout_height">wrap_content</item> </style>
并使用它
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_gravity="center" style="@style/IntroLayout">
它允许我dynamic地设置不同大小的设备的宽度和高度属性,而不必编写任何代码,你可以使用match_parent / wrap_content罚款。 您可以使用您之前在样式中定义的任何@dimen。
我使用这个,因为手机和平板电脑的布局是相同的,除了我想修复平板电脑的宽度,但在手机上填写父母,所以它节省了必须有2个不同的布局与基本相同的XML
HTC设备使用这个来实现match_parent:
<dimen name="my_match_parent">-1.0px</dimen>
我不这么认为。 @ dimen / match_parent是一个单位的特定长度,而match_parent是一个特殊的标志。