值等于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_contentGraphical 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是一个特殊的标志。