Value equals to match_parent or fill_parent in dimens.xml? Value equals to match_parent or fill_parent in dimens.xml? xml xml

Value equals to match_parent or fill_parent in dimens.xml?


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.


First create attribs.xml:

<resources>    <item name="match_parent" type="dimen">-1</item>    <item name="wrap_content" type="dimen">-2</item></resources>

Second use your dimens:

   <dimen name="account_width">@dimen/match_parent</dimen>   <dimen name="account_height">@dimen/wrap_content</dimen>


Depending on why you want to define match_parent in a @dimen, this use case could help you:

Instead of defining the width and height in dimen.xml, you can define it as a style in the styles.xml

I use

//res/values/styles.xml<style name="IntroLayout">    <item name="android:layout_width">match_parent</item>    <item name="android:layout_height">wrap_content</item></style>

and

//res/values-sw600dp/styles.xml<style name="IntroLayout">    <item name="android:layout_width">520dp</item>    <item name="android:layout_height">wrap_content</item></style>

and use it like

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

which allows me to dynamically set the width and height attributes for different sized devices without having to write any code and you can use match_parent/wrap_content fine. you can use any @dimen that you have defined previously in the style as well if you want.

I use this because the layout for phone and tablet is the same, except i want to fix the width on tablet but fill the parent on phone, so it saves having to have 2 different layouts with basically the same xml