您好,我想从“ Add_Create”开始片段“ Add_Create_2”,这是我的代码,两个片段都被合并,而上一个片段没有被删除,所以这就是为什么我每次下一个片段都显示在第一个片段的顶部单击Add_Create布局中存在的下一个按钮
Add_Create Java Code
@Override
public void onClick(View view) {
FragmentTransaction transaction=getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.root,new Add_Create_2())
;
transaction.addToBackStack(null);
transaction.commit();
}
Add_Create XML Code
<ScrollView 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"
android:fillViewport="true">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/root"
android:layout_height="match_parent">
<TextView
android:text="General Information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView1"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:textStyle="bold"
android:layout_alignParentTop="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:hint="Enter Announcement Name"
android:backgroundTint="@color/lightblue"
android:textColorHint="#3F51B5"
android:textColor="#3F51B5"
android:id="@+id/announcement_name"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:hint="Enter Description"
android:backgroundTint="@color/lightblue"
android:textColorHint="#3F51B5"
android:textColor="#3F51B5"
android:id="@+id/description"
android:maxLines="4"
android:lines="2"
android:layout_below="@+id/announcement_name"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/lightblue"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:hint="Enter Price"
android:textColorHint="#3F51B5"
android:textColor="#3F51B5"
android:id="@+id/price"
android:layout_below="@+id/description"
android:layout_centerHorizontal="true" />
<Spinner
android:id="@+id/duration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/items"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_below="@+id/price"
android:prompt="@string/duration" />
<TextView
android:text="Choose Image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/image1"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:layout_below="@+id/duration" />
<Button
android:text="Choose"
android:layout_width="wrap_content"
android:layout_below="@+id/duration"
android:layout_height="wrap_content"
android:layout_marginStart="21dp"
android:id="@+id/Image_Picker"
android:layout_gravity="right"
android:layout_marginTop="20px"
android:textColor="#FFFFFF"
android:layout_marginLeft="150dp"
android:background="@drawable/buttons"
android:layout_centerHorizontal="true"
android:layout_toRightOf="@+id/image1" />
<TextView
android:text="Location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView2"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_below="@+id/image1"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:textStyle="bold" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:hint="Enter Location"
android:backgroundTint="@color/lightblue"
android:textColorHint="#3F51B5"
android:textColor="#3F51B5"
android:id="@+id/room_address"
android:maxLines="4"
android:lines="2"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true" />
<Button
android:text="Next"
android:layout_width="wrap_content"
android:layout_below="@+id/room_address"
android:layout_height="wrap_content"
android:id="@+id/Submit_Room_Information"
android:textColor="#FFFFFF"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:background="@drawable/buttons" />
</RelativeLayout>
Add_Create_2 Java Code
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.create_add_2, container, false);
}
Add_Create_2 XML Code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent">
<TextView
android:text="Availability"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView5"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:textStyle="bold" />
<CheckBox
android:id="@+id/checkbox_alltheday"
android:layout_width="wrap_content"
android:layout_below="@+id/textView5"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:textColor="@color/colorPrimary"
android:layout_marginLeft="10dp"
android:text="All the Day" />
<TextView
android:text="Start Time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView7"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_below="@+id/checkbox_alltheday"
android:textColor="@color/colorPrimary"
android:textSize="20dp" />
<TextView
android:text="Services"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView9"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:layout_below="@+id/textView8"
android:textStyle="bold" />
<CheckBox
android:id="@+id/service_bathroom"
android:layout_width="wrap_content"
android:layout_below="@+id/textView9"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:textColor="@color/colorPrimary"
android:layout_marginLeft="10dp"
android:text="Bathroom" />
android:text="" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/service_other"
android:layout_marginTop="17dp"
android:backgroundTint="@color/lightblue"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:hint="Other"
android:textColorHint="#3F51B5"
android:textColor="#3F51B5"
android:id="@+id/other"
android:layout_below="@+id/service_parking"
/>
最佳答案
过渡应该由Activity处理,而不是按片段处理。当您获得更改片段的事件时,请将此信息提供给您的活动,该活动之后应更改片段。
即在活动中创建一个执行过渡的函数,并在需要时从片段中调用该函数。
您可以通过在您的活动类类型中创建接口或类型转换getActivity()方法来调用所有方法,以调用该方法
这应该修复您的代码
MainActivity XML
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="yourapp.com.fragments.MainActivity">
<FrameLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</RelativeLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
FrameLayout root;
AddCreate firstFragment;
AddCreate2 secondFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firstFragment = new AddCreate();
secondFragment = new AddCreate2();
showFragment(0);
}
public void showFragment(int which) {
android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch (which) {
case 0:
transaction.replace(R.id.root,firstFragment);
break;
case 1:
transaction.replace(R.id.root,secondFragment);
break;
}
transaction.addToBackStack(null);
transaction.commit();
}
}
AddCreate.java
public class AddCreate extends Fragment {
public AddCreate() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.add__create, container, false);
v.findViewById(R.id.Submit_Room_Information).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((MainActivity)getActivity()).showFragment(1);
}
});
return v;
}
}
AddCreate.xml
<ScrollView 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">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="pantherstechnik.com.fragments.fragment.AddCreate">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:text="General Information"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:textStyle="bold"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp" />
<EditText
android:id="@+id/announcement_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:hint="Enter Announcement Name"
android:textColor="#3F51B5"
android:textColorHint="#3F51B5" />
<EditText
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/announcement_name"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:hint="Enter Description"
android:lines="2"
android:maxLines="4"
android:textColor="#3F51B5"
android:textColorHint="#3F51B5" />
<EditText
android:id="@+id/price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/description"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:hint="Enter Price"
android:textColor="#3F51B5"
android:textColorHint="#3F51B5" />
<Spinner
android:id="@+id/duration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/price"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
/>
<TextView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/duration"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:text="Choose Image"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp" />
<Button
android:id="@+id/Image_Picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/duration"
android:layout_centerHorizontal="true"
android:layout_gravity="right"
android:layout_marginLeft="150dp"
android:layout_marginStart="21dp"
android:layout_marginTop="20px"
android:layout_toRightOf="@+id/image1"
android:text="Choose"
android:textColor="#FFFFFF" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/image1"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:text="Location"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:textStyle="bold"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp" />
<EditText
android:id="@+id/room_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:hint="Enter Location"
android:lines="2"
android:maxLines="4"
android:textColor="#3F51B5"
android:textColorHint="#3F51B5" />
<Button
android:id="@+id/Submit_Room_Information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/room_address"
android:layout_marginBottom="10dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:text="Next"
android:textColor="#FFFFFF" />
</RelativeLayout>
</ScrollView>
AddCreate2 XML
<ScrollView 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"
tools:context="pantherstechnik.com.fragments.fragment.AddCreate2">
<LinearLayout
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Availability"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView5"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:textStyle="bold" />
<CheckBox
android:id="@+id/checkbox_alltheday"
android:layout_width="wrap_content"
android:layout_below="@+id/textView5"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:textColor="@color/colorPrimary"
android:layout_marginLeft="10dp"
android:text="All the Day" />
<TextView
android:text="Start Time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView7"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_below="@+id/checkbox_alltheday"
android:textColor="@color/colorPrimary"
android:textSize="20dp" />
<TextView
android:text="Services"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="151dp"
tools:layout_editor_absoluteY="15dp"
android:id="@+id/textView9"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="20dp"
android:layout_below="@+id/textView8"
android:textStyle="bold" />
<CheckBox
android:id="@+id/service_bathroom"
android:layout_width="wrap_content"
android:layout_below="@+id/textView9"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
android:textColor="@color/colorPrimary"
android:layout_marginLeft="10dp"
android:text="Bathroom" />
android:text="" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/service_other"
android:layout_marginTop="17dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:hint="Other"
android:textColorHint="#3F51B5"
android:textColor="#3F51B5"
android:id="@+id/other"
android:layout_below="@+id/service_parking"
/>
</LinearLayout>
</ScrollView>
AddCreate2.java
public class AddCreate2 extends Fragment {
public AddCreate2() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.add_create2, container, false);
return v;
}
}