欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android——Fragment 新手教学第二章 使用篇

程序员文章站 2022-06-22 21:23:08
上一篇:Android——Fragment 新手教学第一章 框架特性本章节我们来学习一下使用篇 我们用 GT_Fragment 来 实现一个【新闻资讯App】底部有四个按钮切换页面的功能实现先上效果图:...

上一篇:Android——Fragment 新手教学第一章 框架特性

 

本章节我们来学习一下使用篇 我们用 GT_Fragment 来 实现一个【新闻资讯App】底部有四个按钮切换页面的功能实现

先上效果图:

Android——Fragment 新手教学第二章 使用篇

第一步:先写好5个xml 布局:

首页布局: fragment_home.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="38sp"
        android:text="首页"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

视频布局: fragment_video.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="38sp"
        android:text="视频页面"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

投资布局:fragment_investment.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="38sp"
        android:text="投资页面"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

我的布局: fragment_my.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="38sp"
        android:text="我的页面"
        android:background="#FFFFFF"
        />

    <Button
        android:id="@+id/btn_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="前去登录"
        app:layout_constraintTop_toTopOf="parent"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

(核心)主页面布局:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/ll"
        />

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        >
        <Button
            android:id="@+id/btn_home"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="首页"
            />

        <Button
            android:id="@+id/btn_video"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="视频"
            />

        <Button
            android:id="@+id/btn_investment"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="投资"
            />

        <Button
            android:id="@+id/btn_my"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="我的"
            />

    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

 

第二步:写各个布局的逻辑

首页代码:Fragment_Home.java

public class Fragment_Home extends GT.GT_Fragment.BaseFragments {

    @Override
    protected int loadLayout() {
        return R.layout.fragment_home;
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {

    }
}

视频页面代码:Fragment_Video.java

public class Fragment_Video extends GT.GT_Fragment.BaseFragments {

    @Override
    protected int loadLayout() {
        return R.layout.fragment_video;
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {

    }
}

投资页面代码:Fragment_Investment.java

public class Fragment_Investment extends GT.GT_Fragment.BaseFragments {

    @Override
    protected int loadLayout() {
        return R.layout.fragment_investment;
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {

    }
}

我的页面代码:Fragment_My.java

public class Fragment_My extends GT.GT_Fragment.BaseFragments {

    @Override
    protected int loadLayout() {
        return R.layout.fragment_my;
    }

    @Override
    protected void initView(@NonNull View view, @Nullable Bundle savedInstanceState) {
        view.findViewById(R.id.btn_login).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toast(activity,"跳转到登录页面");
            }
        });
    }
}

(核心)主界面代码:MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private GT.GT_Fragment gt_fragment;

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

        //构建 GT_Fragment
        gt_fragment = GT.GT_Fragment.Build(
                this,                   // 活动
                R.id.frameLayout,       // 指定 Home 容器的ID
                Fragment_Home.class,    //默认加载首页 Fragment_Home
                savedInstanceState      // Bundle
        );

        //注册监听
        findViewById(R.id.btn_home).setOnClickListener(this);
        findViewById(R.id.btn_video).setOnClickListener(this);
        findViewById(R.id.btn_investment).setOnClickListener(this);
        findViewById(R.id.btn_my).setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {

        gt_fragment.startMode(GT.GT_Fragment.HOME);//设置启动模式为 主界面模式

        switch (v.getId()) {
            case R.id.btn_home:
                gt_fragment.startFragmentHome(Fragment_Home.class);//跳转到主界面
                break;

            case R.id.btn_video:
                gt_fragment.startFragmentHome(Fragment_Video.class);//跳转到视频面
                break;

            case R.id.btn_investment:
                gt_fragment.startFragmentHome(Fragment_Investment.class);//跳转到投资面
                break;

            case R.id.btn_my:
                gt_fragment.startFragmentHome(Fragment_My.class);//跳转到我的 界面
                break;
        }

    }
}

感谢你的关注、

下一篇:Android——Fragment 新手教学第二章 继承篇

 

 

 

 

本文地址:https://blog.csdn.net/qq_39799899/article/details/107464315