你可以把Activity换成AppCompatActivity,然后getSupportFragmentManager() 就不会报错了
这好像面试的时候会去问。
Android中静态的东西一般都是在布局文件中写好的。所以静态fregment已经是在布局文件中有<fregment>标签;
老师也讲了动态fregment需要以来调用FregmentManager 和 FregmentTrasaction 因为是动态的所以可以用到Frameworks中的相应的工具进行配置管理。
我理解就这两点。
换了种方法 解决了
我也没有按钮默认的背景,可能是你布局写的有点问题吧
这么简单,不需要源码,跟着视频操作就行
阿里巴巴矢量图
http://iconfont.cn/collections 阿里巴巴矢量图库标 还挺不错的
慕课网
replace我们开发中经常用到啊- -ps老代码的二次开发-
设置点击事件,在点击事件中,使用transaction方法引入你想要显示的fragment,最后transaction().commit提交事务就能转换了
用权重做的平均分weight属性
存在,视频中说要新建一个包
@Bind(R.id.mRb_server)
RadioButton mRbServer;
@Bind(R.id.mRb_wx)
RadioButton mRbWx;
@Bind(R.id.mRb_girl)
RadioButton mRbGirl;
@Bind(R.id.mRb_person)
RadioButton mRbPerson;
@Bind(R.id.rl_container)
FrameLayout rlContainer;
@Bind(R.id.rg_buttom)
RadioGroup rgButtom;
private BaseFragment mFragmentServer,mFragmentWx,mFragmentGirl,mFragmentPerson,currentFragment;
@Override
public int getLayoutId() {
logUtils.logD("getLayoutId","getLayoutId");
return R.layout.activity_main;
}
@Override
public void initView() {
logUtils.logD("initView","initView");
setListener();
}
private void setListener() {
rgButtom.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
handleOnClick(checkedId);
}
});
}
private void handleOnClick(int checkedId) {
switch (checkedId){
case R.id.mRb_server :
switchFragment(mFragmentServer);
break;
case R.id.mRb_wx :
switchFragment(mFragmentWx);
break;
case R.id.mRb_girl :
switchFragment(mFragmentGirl);
break;
case R.id.mRb_person :
switchFragment(mFragmentPerson);
break;
default:
break;
}
}
private void switchFragment(BaseFragment fragment){
FragmentTransaction tran = getSupportFragmentManager().beginTransaction();
tran.show(fragment);
tran.hide(currentFragment);
tran.commit();
currentFragment=fragment;
}
@Override
public void initData() {
mFragmentServer=new Fragment_Server_Manager();
mFragmentWx=new Fragment_Wx_Selected();
mFragmentGirl=new Fragment_Girl();
mFragmentPerson=new Fragment_Personnal();
FragmentTransaction tran = getSupportFragmentManager().beginTransaction();
tran.add(R.id.rl_container,mFragmentServer);
tran.add(R.id.rl_container,mFragmentWx).hide(mFragmentWx);
tran.add(R.id.rl_container,mFragmentGirl).hide(mFragmentGirl);
tran.add(R.id.rl_container,mFragmentPerson).hide(mFragmentPerson);
currentFragment=mFragmentServer;
tran.commit();
}
因为它外层用的就是相对布局,子控件默认就是出现在左上角,子控件的宽度写了match_parent,高度包裹内容,所以看起来就是出现在布局的顶部效果了。
https://www.imooc.com/learn/264 这个里面有fragment和viewpager的结合使用,挺不错的,你可以去看看
我也想知道老师用的是什么画图软件,求回答