我正在尝试制作笔记应用。 我根据用户的选择将片段附加到活动中。
如果我的活动布局文件根元素采用线性布局,即使旋转设备,附着也能正常工作。 但是,当我将活动放在相对布局中时,在旋转设备时,应用程序会显示双数据字段:即在旋转重叠之前数据已更改为默认值。
片段布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="jsb.com.notetaker.NoteEditFragment">
<ImageButton
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/s"
android:id="@+id/edit_note_item_icon"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/edit_note_item_icon"
android:layout_alignTop="@id/edit_note_item_icon">
<EditText
android:text="TextView"
android:layout_marginLeft="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edi_note_title_view"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"/>
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edit_note_item_icon">
<EditText
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_note_body_view"
android:layout_marginTop="10dp"/>
</ScrollView>
活动布局文件(相对布局)
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/detail_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="jsb.com.notetaker.NoteDetailActivity">
只要设备旋转,“编辑文本”字段中的数据就会重叠。
相对视图是否保留以前的数据,因为当我对活动文件使用线性布局时,它工作正常并且不会发生重叠
这是我在打开时将数据填充到片段字段中的方式
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View fragmentLayout = inflater.inflate(R.layout.fragment_note_edit,container,false);
imageButton = (ImageButton) fragmentLayout.findViewById(R.id.edit_note_item_icon);
editBody = (EditText) fragmentLayout.findViewById(R.id.edit_note_body_view);
editTitle = (EditText)fragmentLayout.findViewById(R.id.edit_note_title_view);
Intent intent = getActivity().getIntent();
String title = intent.getExtras().getString(MainActivity.NOTE_TITLE_KEY);
String body = intent.getExtras().getString(MainActivity.NOTE_BODY_KEY);
Note.Category category = (Note.Category) intent.getExtras().getSerializable(MainActivity.NOTE_CATEGORY_KEY);
imageButton.setImageResource(Note.getCategoryImageFromCategory(category));
editTitle.setText(title);
editBody.setText(body);
return inflater.inflate(R.layout.fragment_note_edit, container, false);
}