Android

时间:2016-11-22 19:15:33

标签: android xml android-layout

我有一个非常奇怪的问题:我有一个EditText活动和三个按钮和两个布局文件来处理方向更改。当我以纵向方向启动应用程序并旋转设备时,android会保留纵向方向布局,但如果我以横向方向启动应用程序,则会加载适当的横向布局文件,但即使在旋转到纵向布局后,也会再次保留横向布局。只有包含EditText的活动才会发生这种情况。怎么了?这是我的代码: 1)Manifest.xml:

  <activity
        android:name=".AnalyzeTextActivity"
        android:configChanges="orientation|screenSize|screenLayout"
        android:parentActivityName=".StartScreenActivity"
        android:windowSoftInputMode="adjustPan"
        />

2)肖像

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_analyze_text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ADD5F7"
    android:clickable="true"
    android:focusableInTouchMode="true"
    >

    <EditText
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:gravity="start"
        android:id="@+id/edit_text_analysis"
        android:hint="@string/edit_text_hint"
        android:isScrollContainer="true"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:id="@+id/button_upload_file"
        android:background="@drawable/button_upload_large"
        android:onClick="onUploadClicked"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/button_upload_file"
        android:layout_marginTop="10dp"
        android:id="@+id/button_start_analysis"
        android:background="@drawable/button_start_large"
        android:onClick="onStartClicked"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/button_start_analysis"
        android:layout_marginTop="50dp"
        android:background="@drawable/button_clear_large"
        android:onClick="onClearClicked"/>

</RelativeLayout>

3)风景

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_analyze_text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ADD5F7"
    android:clickable="true"
    android:focusableInTouchMode="true"
    >

    <EditText
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:gravity="start"
        android:id="@+id/edit_text_analysis"
        android:hint="@string/edit_text_hint"
        android:isScrollContainer="true"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/edit_text_analysis"
        android:layout_toLeftOf="@+id/button_start_analysis"
        android:layout_marginRight="5dp"
        android:id="@+id/button_upload_file"
        android:layout_marginTop="2dp"
        android:background="@drawable/button_upload_small"
        android:onClick="onUploadClicked"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edit_text_analysis"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="2dp"
        android:id="@+id/button_start_analysis"
        android:background="@drawable/button_start_small"
        android:onClick="onStartClicked"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/edit_text_analysis"
        android:layout_toRightOf="@+id/button_start_analysis"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="2dp"
        android:background="@drawable/button_clear_small"
        android:onClick="onClearClicked"/>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

问题出在清单文件

android:configChanges="orientation|screenSize|screenLayout"

默认配置更改由android处理,当您在清单文件中定义android:configChanges时,您告诉android您将处理活动中括号内的所有confiChanges,有特殊的方法

 @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

要解决您的问题,只需从清单中删除 orientation

即可
android:configChanges="screenSize|screenLayout"

答案 1 :(得分:0)

中删除android:configChanges="screenSize|screenLayout"
  `<activity
    android:name=".AnalyzeTextActivity"
    android:configChanges="orientation|screenSize|screenLayout"
    android:parentActivityName=".StartScreenActivity"
    android:windowSoftInputMode="adjustPan"
    />`