IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Fragment的使用 -> 正文阅读

[移动开发]Android Fragment的使用

Android Fragment的使用

实现效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目目录:

在这里插入图片描述

具体代码:

容器, 必须是一个Activity, 在这里是主类

public class MainActivity extends AppCompatActivity {

    Button btnA;
    Button btnB;
    Button btnC;

    //直接在创建属性的阶段就使用new对象的方式实例化三个fragment对象
    FragmentA fragmentA = new FragmentA();
    FragmentB fragmentB = new FragmentB();
    FragmentC fragmentC = new FragmentC();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //通过id将三个路由button实例化到本类中
        btnA = findViewById(R.id.btnA);
        btnB = findViewById(R.id.btnB);
        btnC = findViewById(R.id.btnC);

        //在打开应用的时候直接显示fragmentA显示的内容
        getSupportFragmentManager().
                beginTransaction().
                add(R.id.FrameLayout,fragmentA).
                commitAllowingStateLoss();

        //按钮A点击监听: 点击按钮A就跳转至FragmentA
        btnA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getSupportFragmentManager().
                        beginTransaction().
                        replace(R.id.FrameLayout, fragmentA).
                        commitAllowingStateLoss();
            }
        });

        //按钮B点击监听: 点击按钮B就跳转至FragmentB
        btnB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getSupportFragmentManager().
                        beginTransaction().
                        replace(R.id.FrameLayout, fragmentB).
                        commitAllowingStateLoss();
            }
        });

        //按钮C点击监听: 点击按钮C就跳转至FragmentC
        btnC.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getSupportFragmentManager().
                        beginTransaction().
                        replace(R.id.FrameLayout, fragmentC).
                        commitAllowingStateLoss();
            }
        });

    }

}

其对应的 容器layout布局

activity_main.xml

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <FrameLayout
            android:id="@+id/FrameLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/LinearLayout1"/>

        <TableLayout
            android:id="@+id/LinearLayout1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="*"
            android:padding="3dip"
            android:layout_alignParentBottom="true">
            <TableRow>
                <Button
                    android:id="@+id/btnA"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="A"
                    android:paddingTop="10sp"
                    android:paddingBottom="10sp"/>
                <Button
                    android:id="@+id/btnB"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="B"
                    android:paddingTop="10sp"
                    android:paddingBottom="10sp"/>
                <Button
                    android:id="@+id/btnC"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="C"
                    android:paddingTop="10sp"
                    android:paddingBottom="10sp"/>
            </TableRow>
        </TableLayout>

    </RelativeLayout>

</LinearLayout>

FragmentA的布局:

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Fragment A"
    android:textAlignment="center"
    android:layout_gravity="center"
    android:gravity="center"
    android:textColor="#000000"
    android:textSize="50sp"/>

FragmentA的代码, 无需是Activity, 但必须继承Fragment:

//类必须 extends Fragment, 并重写下面两个方法
public class FragmentA extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle saveInstanceState){
        //R.layout.fragment_a 这个是FragmentA对应的layout界面
        return inflater.inflate(R.layout.fragment_a, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle saveInstanceState){
        super.onViewCreated(view,saveInstanceState);
    }

}

FragmentB的布局:

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Fragment B"
    android:textAlignment="center"
    android:layout_gravity="center"
    android:gravity="center"
    android:textColor="#2196F3"
    android:textSize="50sp"/>

FragmentB的代码, 无需是Activity, 必须继承Fragment:

//类必须 extends Fragment, 并重写下面两个方法
public class FragmentB extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle saveInstanceState){
        //R.layout.fragment_b 这个是FragmentB对应的layout界面
        return inflater.inflate(R.layout.fragment_b, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle saveInstanceState){
        super.onViewCreated(view,saveInstanceState);
    }

}

FragmentC的布局:

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Fragment C"
    android:textAlignment="center"
    android:layout_gravity="center"
    android:gravity="center"
    android:textColor="#4CAF50"
    android:textSize="50sp"/>

FragmentC的代码, 无需是Activity, 必须继承Fragment:

public class FragmentC extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle saveInstanceState){
        //R.layout.fragment_c 这个是FragmentC对应的layout界面
        return inflater.inflate(R.layout.fragment_c, container, false);
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle saveInstanceState){
        super.onViewCreated(view,saveInstanceState);
    }
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:18:57  更:2021-12-26 22:20:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:53:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码