Android之Fragment实现界面切换学习笔记
今天来实现一个简单的界面切换功能,关于页面的切换相信大家都非常熟悉,比如微信、QQ、支付宝等这些常用软件都会有界面切换功能,根据软件的要求不同,我们所设计的页面切换个数也会不同,今天我就写一个四个基本页面切换的小Demo,具体的代码功能都会在注释上写上。
PS:如果想和是我一样的效果,记得先把系统默认的ActionBar去掉,在头部添加我们自定义的top_bar,我们只需要在AndroidManifest.xml中修改一下android:theme="@style/AppTheme"
为以下代码
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
下面先看看界面效果吧:
BaseFragment.java
/**
* 公用的界面,考虑到通用性,就先写一个简单的BaseFragment吧
* 所有子类界面只需要设置简单的界面内容即可
*/
public abstract class BaseFragment extends Fragment {
//公用内容设置
private TextView mBaseTvTitle;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_base, container, false);
mBaseTvTitle = ((TextView) view.findViewById(R.id.BaseTvTitle));
setTitle(mBaseTvTitle);
return view;
}
/**
* 让子类去实现对应的内容
* @param tvTitle
*/
protected abstract void setTitle(TextView tvTitle);
}
FLFragment .java
/**
* 分类Fragment
*/
public class FLFragment extends BaseFragment {
/**
* 设置对应的内容即可
* @param tvTitle
*/
@Override
protected void setTitle(TextView tvTitle) {
tvTitle.setText("分类界面");
tvTitle.setTextSize(30);
tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
}
}
RMFragment .java
/**
* 热门Fragment
*/
public class RMFragment extends BaseFragment {
@Override
protected void setTitle(TextView tvTitle) {
tvTitle.setText("热门界面");
tvTitle.setTextSize(30);
tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
}
}
Fragment.java
/**
* 指南Fragment
*/
public class ZNFragment extends BaseFragment {
@Override
protected void setTitle(TextView tvTitle) {
tvTitle.setText("指南界面");
tvTitle.setTextSize(30);
tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
}
}
WDFragment .java
/**
* 我的Fragment
*/
public class WDFragment extends BaseFragment {
@Override
protected void setTitle(TextView tvTitle) {
tvTitle.setText("我的界面");
tvTitle.setTextSize(30);
tvTitle.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//分类页面常量
private final int FL = 1;
//指南页面常量
private final int ZN = 2;
//热门页面常量
private final int RM = 3;
//我的页面常量
private final int WD = 4;
//指南页面布局控件
private LinearLayout mLinZN;
//分类页面布局控件
private LinearLayout mLinFL;
//热门页面布局控件
private LinearLayout mLinRM;