只是为了弥补没有在帧布局上面没有动态板顶Fragment这一个缺憾,简单的配置了一个demo
Fragment的布局都是非常简单,只有一个TextView,这里就不贴不来了
然后Fragment.class中链接布局文件
View view = inflater.inflate(R.layout.first_fragment,container,false);
然后就是主函数中进行绑定设置!代码如下
主代码:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends FragmentActivity {
FrameLayout frameLayout;
ImageView homeView, starView, mineView;
SecondFragment secondFragment = null;
FirstFragment firstFragment = null;
ThirdFragment thirdFragment = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frameLayout = findViewById(R.id.fragment_root);
initView();
//第一次加载页面,选择显示第一个界面
selectFragment(0);
}
public void initView() {
firstFragment = new FirstFragment();
secondFragment = new SecondFragment();
thirdFragment = new ThirdFragment();
homeView = findViewById(R.id.home_img);
starView = findViewById(R.id.star_img);
mineView = findViewById(R.id.mine_img);
//设置点击事件,切换Fragment
homeView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectFragment(0);
}
});
starView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectFragment(1);
}
});
mineView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectFragment(2);
}
});
}
public void selectFragment(int position) {//设置传入第几值显示第几个fragment
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
switch (position) {
case 0:
if (firstFragment == null) {
firstFragment = new FirstFragment();
}
//将原来的Fragment替换掉---此处R.id.fragmen指的是FrameLayout
ft.replace(R.id.fragment_root, firstFragment);
break;
case 1:
if (secondFragment == null) {
secondFragment = new SecondFragment();
}
ft.replace(R.id.fragment_root, secondFragment);
break;
case 2:
if (thirdFragment == null) {
thirdFragment = new ThirdFragment();
}
ft.replace(R.id.fragment_root, thirdFragment);
break;
default:
break;
}
ft.commit();
}
}