2.滑动
package com.bawei.lianxi1.activity;
import android.os.Bundle;
import android.support.annotation.LayoutRes;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
public abstract class BaseActivity extends FragmentActivity {
protected BaseActivity act;
protected final String TAG=getClass().getSimpleName();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
act=this;
setContentView(getLayoutID());
initView();
initData();
initListener();
}
@LayoutRes
protected abstract int getLayoutID();
protected abstract void initListener();
protected abstract void initView();
protected abstract void initData();
@SuppressWarnings("unchecked")
protected <E> E f(int id){
return (E)findViewById(id);
}
}
package com.bawei.lianxi1.activity;
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.widget.RadioGroup;
import com.bawei.lianxi1.R;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends BaseActivity {
private int[] rbs = {R.id.rg_a, R.id.rg_b, R.id.rg_c};
private ViewPager vp;
private RadioGroup rg;
private AFragment aFragment;
private BFragment bFragment;
private CFragment cFragment;
private List<Fragment> mFragments;
@Override
protected int getLayoutID() {
return R.layout.activity_main;
}
@Override
protected void initView() {
vp = findViewById(R.id.vp);
rg = findViewById(R.id.rg);
}
@Override
protected void initData() {
mFragments = new ArrayList<>();
/*videoFragment = new VideoFragment();
pictureFragment = new PictureFragment();*/
aFragment = new AFragment();
bFragment = new BFragment();
cFragment = new CFragment();
mFragments.add(aFragment);
mFragments.add(bFragment);
mFragments.add(cFragment);
vp.setAdapter(new PagerMainAdapter(getSupportFragmentManager(), mFragments));
// 设置缓存页面数
vp.setOffscreenPageLimit(3);
}
@Override
protected void initListener() {
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
for (int i = 0; i < rbs.length; i++) {
if (rbs[i] != checkedId) continue;
//加载滑动
vp.setCurrentItem(i);
}
}
});
//ViewPager的点击事件 vp-rg互相监听:vp
vp.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
rg.check(rbs[position]);
}
});
//设置一个默认页
rg.check(rbs[0]);
}
}
package com.bawei.lianxi1.activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
public class PagerMainAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments;
public PagerMainAdapter(FragmentManager supportFragmentManager, List<Fragment> mFragments) {
super(supportFragmentManager);
this.mFragments = mFragments;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
}
3.bottomBar
package com.example.week1duanzi;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.example.week1duanzi.ui.duanzi.DuanziFragment;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DuanziFragment duanziFragment = new DuanziFragment();
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().replace(R.id.fl, duanziFragment).commit();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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/fl"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>