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