Joh*_*son 6 xml layout android
在android xml:ish
有没有办法直接根据xml中的布局大小/方向更改可见性属性?
我在片段中有一个按钮,只有小屏幕尺寸才能看到.在更大的尺寸上,让我们说布局大,我希望它被隐藏.
当然,我可以毫无问题地为此编写代码,但出于学术原因,我想知道它可以做这样的事情.
<Button
android:id="@+id/btn_check_availability"
style="@style/product_info_footer_button"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:text="@string/check_availability"
android:visibility="<magic expression here>" />
Run Code Online (Sandbox Code Playgroud)
谢谢
//约翰
这个答案是基于FlávioFaria提供的解释.
的visible,gone等能值映射到其相应的枚举值的字符串资源-这意味着你可以创建一个visibilty.xml带有字符串资源为您希望每个布局,Android将自动解决您要为每个屏幕类型之一.
我推荐以下内容:
/res/values/visibilty.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Enum values pulled from Android source -->
<string name="visibility_visible">0</string>
<string name="visibility_invisible">1</string>
<string name="visibility_gone">2</string>
<string name="product_info_footer_button_visibility">@string/visibility_visible</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
/res/values-large/visibilty.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="product_info_footer_button_visibility">@string/visibility_invisible</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后,您可以按如下方式引用按钮的可见性:
<Button
android:id="@+id/btn_check_availability"
style="@style/product_info_footer_button"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:text="@string/check_availability"
android:visibility="@string/product_info_footer_button_visibility" />
Run Code Online (Sandbox Code Playgroud)
警告:这取决于具有与AOSP源中定义的可见性(0/1/2)相同的枚举值的设备.设备制造商和自定义ROM创建者可以更改这些值,在这种情况下,此代码可能无法按预期工作.
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |