CheckBox文本在方向更改时不会改变
对于一个屏幕,我有不同的布局文件(一个在布局中,一个在layout-land中),唯一的区别是文件中的一些UI小部件指向不同的字符串(横向模式的较长字符串)。对于TextView小部件,将显示正确的资源字符串,但对于CheckBox,显示的文本在所有方向更改期间保持不变。
./布局/ tabA.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/label1"
style="@style/TextBoxLabel.Header.WithInputsOnScreen"
android:text="@string/label1Short"
/>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:layout_below="@id/label1"
android:text="@string/checkBox1Short"
/>
</RelativeLayout>
</ScrollView>
./布局脊/ tabA.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/label1"
style="@style/TextBoxLabel.Header.WithInputsOnScreen"
android:text="@string/label1Long"
/>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:layout_below="@id/label1"
android:text="@string/checkBox1Long"
/>
</RelativeLayout>
</ScrollView>
因此,使用上述方法,在方向更改label1上的文本在label1Short和label1Long之间变化。但是,checkBox1的文本与首次查看屏幕时设备方向正确的文本保持一致。
有什么想法?谢谢 麦克
答案 0 :(得分:2)
CheckBox小部件即使在配置更改后也会保存状态(在您的情况下更改方向)。作为您的问题的解决方案,您可以自己定义Activity的onConfigurationChange方法。