CheckBox文本在方向更改时不会更改

时间:2012-01-08 16:44:11

标签: android android-widget

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的文本与首次查看屏幕时设备方向正确的文本保持一致。

有什么想法?谢谢  麦克

1 个答案:

答案 0 :(得分:2)

CheckBox小部件即使在配置更改后也会保存状态(在您的情况下更改方向)。作为您的问题的解决方案,您可以自己定义Activity的onConfigurationChange方法。