我有一个非常奇怪的问题:我有一个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>
答案 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"
/>`