Android Fragment 之间切换:按钮点击显示另一个 Fragment
可以通过以下步骤实现在一个 fragment 中点击某按钮显示另一个 fragment:
-
在 xml 布局文件中定义两个 fragment,分别为 fragment1 和 fragment2。
-
在 fragment1 中定义一个按钮,并为其设置点击事件。
-
在点击事件中,通过 FragmentManager 获取 FragmentTransaction 对象。
-
在 FragmentTransaction 对象中添加一个 replace 操作,将 fragment1 替换为 fragment2。
-
使用 commit 方法提交 FragmentTransaction 操作,即可在点击按钮时显示 fragment2。
示例代码如下:
- 在 xml 布局文件中定义两个 fragment:
<fragment
android:id="@+id/fragment1"
android:name="com.example.Fragment1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<fragment
android:id="@+id/fragment2"
android:name="com.example.Fragment2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
- 在 Fragment1 中定义一个按钮,并为其设置点击事件:
public class Fragment1 extends Fragment {
private Button btnShowFragment2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
btnShowFragment2 = view.findViewById(R.id.btnShowFragment2);
btnShowFragment2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment2();
}
});
return view;
}
private void showFragment2() {
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment1, new Fragment2());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}
- 在点击事件中,通过 FragmentManager 获取 FragmentTransaction 对象,并添加一个 replace 操作,将 fragment1 替换为 fragment2:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment1, new Fragment2());
- 使用 commit 方法提交 FragmentTransaction 操作,即可在点击按钮时显示 fragment2:
fragmentTransaction.commit();
原文地址: https://www.cveoy.top/t/topic/oUwm 著作权归作者所有。请勿转载和采集!