Android 点击按钮显示 Fragment 实现方法
-
创建 Fragment 类:首先需要创建一个继承自 Fragment 的类,该类将作为要显示的 fragment。
-
创建布局文件:在 res/layout 文件夹中创建一个 XML 布局文件,该文件将指定 fragment 的外观和布局。
-
在 Activity 中添加 Fragment:在 Activity 的布局文件中添加一个 Fragment 占位符,然后在 Activity 中使用 FragmentManager 将 Fragment 添加到该占位符中。
-
设置点击事件:在按钮的点击事件中,使用 FragmentManager 打开 Fragment 并将其添加到 Activity 的布局文件中。
示例代码:
- 创建 Fragment 类
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_my, container, false);
}
}
- 创建布局文件
在 res/layout 文件夹中创建一个 XML 布局文件 fragment_my.xml,包含一个 TextView:
<?xml version='1.0' encoding='utf-8'?>
<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android'
android:layout_width='match_parent'
android:layout_height='match_parent'
android:orientation='vertical'>
<TextView
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:text='This is my fragment' />
</LinearLayout>
- 在 Activity 中添加 Fragment
在 Activity 的布局文件中添加一个 FrameLayout 占位符:
<FrameLayout
android:id='@+id/fragment_container'
android:layout_width='match_parent'
android:layout_height='match_parent' />
在 Activity 的 onCreate 方法中,使用 FragmentManager 将 Fragment 添加到该占位符中:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
MyFragment myFragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, myFragment);
fragmentTransaction.commit();
- 设置点击事件
在按钮的点击事件中,使用 FragmentManager 打开 Fragment 并将其添加到 Activity 的布局文件中:
Button button = findViewById(R.id.my_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
MyFragment myFragment = new MyFragment();
fragmentTransaction.replace(R.id.fragment_container, myFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
原文地址: https://www.cveoy.top/t/topic/oUwf 著作权归作者所有。请勿转载和采集!