Ren*_*ndy 47 xml android dimension android-layout android-resources
基于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>
Run Code Online (Sandbox Code Playgroud)
然后我在布局中使用这两个维度:
<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" />
Run Code Online (Sandbox Code Playgroud)
然后,当我预览到时Graphical Layout
,它会抱怨:
您必须提供layout_width属性.
您必须提供layout_height属性.
实际上我可以定义一个等于match_parent的值dimens.xml
吗?
更新:
我也试过了,但预览仍然抱怨:
<dimen name="main_left_menu_user_account_width">-1dp</dimen>
<dimen name="main_left_menu_user_account_height">-1dp</dimen>
Run Code Online (Sandbox Code Playgroud)
我成功使用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>
Run Code Online (Sandbox Code Playgroud)
小智 47
使用它,它适用于我
<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>
Run Code Online (Sandbox Code Playgroud)
并且之所以match_parent
不运行.你不能提供类似关键字的构建match_parent
编辑:使用px
而不是dp
Jarett Millard在评论中的建议.
Ahm*_*deh 40
首先创建attribs.xml:
<resources>
<item name="match_parent" type="dimen">-1</item>
<item name="wrap_content" type="dimen">-2</item>
</resources>
Run Code Online (Sandbox Code Playgroud)
第二次使用你的尺寸:
<dimen name="account_width">@dimen/match_parent</dimen>
<dimen name="account_height">@dimen/wrap_content</dimen>
Run Code Online (Sandbox Code Playgroud)
Fon*_*nix 23
根据您希望match_parent
在@dimen中定义的原因,此用例可以帮助您:
您可以在styles.xml中将其定义为样式,而不是在dimen.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>
Run Code Online (Sandbox Code Playgroud)
和
//res/values-sw600dp/styles.xml
<style name="IntroLayout">
<item name="android:layout_width">520dp</item>
<item name="android:layout_height">wrap_content</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并使用它
<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">
Run Code Online (Sandbox Code Playgroud)
这允许我动态设置不同大小的设备的宽度和高度属性,而无需编写任何代码,你可以使用match_parent/wrap_content罚款.如果需要,您也可以使用之前在样式中定义的任何@dimen.
我使用这个是因为手机和平板电脑的布局是一样的,除了我想在平板电脑上修复宽度但在手机上填充父母,所以它节省了必须有两个不同的布局与基本相同的xml
ram*_*mon 10
对于HTC设备,使用它来实现match_parent:
<dimen name="my_match_parent">-1.0px</dimen>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17312 次 |
最近记录: |