Android:为什么大多数布局会在方向更改时消失?

时间:2015-05-29 02:27:59

标签: android android-layout android-edittext

我有一个简单的MainActivity,其中从纵向到横向和回到纵向的方向更改正常。我的SecondActivity屏幕有一个带有EditText行的TextView,供用户输入。不幸的是,在从纵向到横向的方向更改时,布局不会正确更改。它似乎没有延续到横向模式。未加载布局文件的TextView,背景颜色和工具栏。仅显示EditText提示,显示的背景为白色。我在三星Galaxy S3和Genymotion模拟器上测试了同样糟糕的结果。最后,当设备或仿真器旋转回纵向时,视图布局正确加载......一切都像原始肖像显示一样正确显示。我在这里缺少什么?

SecondActivity java文件:

...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cardviewinput);

EditText java文件:

public class ListenerEditText extends EditText {    
...

布局xml文件:

...
<LinearLayout

    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1"
    android:background="#FF0000" >

    <TextView
        android:id="@+id/createSkycard"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal"
        android:text="Create a skycard"
        android:textAppearance="?android:attr/textAppearanceMedium"/>


</LinearLayout>


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1"
    android:background="#FF0000"        >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:text=" To Do item:  "
        android:textAppearance="?android:attr/textAppearanceMedium"/>

<com.example.jdw.secondscreen.ListenerEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/CEditText"
        android:inputType="text|textCapSentences|textNoSuggestions"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:hint="Type a new item here"
        android:textColor="#000000"
        android:singleLine="true"
        android:imeOptions="actionNext" >

        <requestFocus />
    </com.example.jdw.secondscreen.ListenerEditText>
...

1 个答案:

答案 0 :(得分:0)

确保在方向更改时,光标不在edittext中。 听起来你的活动正在加载,光标已经设置为开始输入,所以当你改变方向时,你只看到带有提示的EditText内部并准备输入内容。

现在,如果你想让它以这种方式行事,那取决于你。