Value equals to match_parent or fill_parent in dimens.xml?

Rendy picture Rendy · May 10, 2013 · Viewed 19.4k times · Source

Based on here on XML Attributes section I specify following in my 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>

Then I use the both dimensions in my layout:

<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" />

Then, when I preview to Graphical Layout, it complains:

You must supply a layout_width attribute.

You must supply a layout_height attribute.

Actually can I define a value equals to match_parent in dimens.xml?

Update:

I also tried this but the preview still complains:

<dimen name="main_left_menu_user_account_width">-1dp</dimen>
<dimen name="main_left_menu_user_account_height">-1dp</dimen>

I successfully use wrap_content (the Graphical Layout doesn't complain at all):

<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>

Answer

Swetank picture Swetank · Sep 27, 2013

Use this, it works for me

<dimen name="custom_wrap_content">-2px</dimen>  
<dimen name="horizontal_border_height">@dimen /custom_wrap_content</dimen>

<dimen name="custom_match_parent">-1px</dimen>  
<dimen name="vertical_border_height">@dimen /custom_match_parent</dimen>

And the Reason why match_parent doesn't run. You cannot supply a build in keyword like match_parent

Edit: Use px instead of dp as suggested by Jarett Millard in the comments.