过几秒自己滑动fragment,按立即体验跳入下面的页面
App类来确定fragment之间的加载
public class App extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {
Fragment[] fragments = new Fragment[5];
RadioGroup rg;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_layout);
rg = (RadioGroup) findViewById(R.id.rg);
rg.setOnCheckedChangeListener(this);
showFragment(0);
rg.check(R.id.rb1);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rb1:
showFragment(0);
break;
case R.id.rb2:
showFragment(1);
break;
case R.id.rb3:
showFragment(2);
break;
case R.id.rb4:
showFragment(3);
break;
case R.id.rb5:
showFragment(4);
break;
}
}
int currIndex = -1;
public void showFragment(int index) {
if (index == currIndex)
return;
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if (currIndex != -1) {
ft.hide(fragments[currIndex]);
}
if (fragments[index] == null) {
createFragment(index);
ft.add(R.id.fl_content, fragments[index]);
} else {
ft.show(fragments[index]);
}
currIndex = index;
ft.commit();
}
private void createFragment(int index) {
switch (index) {
case 0:
fragments[0] = new CollectFragment();
break;
case 1:
fragments[1] = new OrderFragment();
break;
case 2:
fragments[2] = new HomePageFragment();
break;
case 3:
fragments[3] = new PersonalCenterFragment();
break;
case 4:
fragments[4] = new SettingFragment();
break;
}
}
}
MainActivity 类
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
ViewPager vp;
Timer timer;
Button btn;
LinearLayout rl;
public void start() {
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
vp.setCurrentItem(vp.getCurrentItem() + 1);
}
});
}
}, 3000, 2000);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
btn = (Button) findViewById(R.id.btn);
vp.setAdapter(new myPagerAdapter());
start();
btn.setOnClickListener(this);
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
int index;
@Override
public void onPageSelected(int position) {
rl.getChildAt(index).setSelected(false);
rl.getChildAt(position).setSelected(true);
index = position;
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
initPiont();
}
private void initPiont() {
rl = (LinearLayout) findViewById(R.id.rl);
for (int i = 0; i <3 ; i++) {
View v = new View(this);
LinearLayout.LayoutParams parames = new LinearLayout.LayoutParams(20,20);
v.setBackgroundResource(R.drawable.point_select);
parames.setMargins(10,10,10,10);
v.setLayoutParams(parames);
rl.addView(v);
}
rl.getChildAt(0).setSelected(true);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, App.class);
startActivity(intent);
}
class myPagerAdapter extends PagerAdapter {
int[] imgId = {R.mipmap.a, R.mipmap.b, R.mipmap.c};
List<View> viewList = new ArrayList<>();
public myPagerAdapter() {
for (int i = 0; i < 3; i++) {
ImageView iv = new ImageView(getBaseContext());
iv.setImageResource(imgId[i]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
viewList.add(iv);
}
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
}
}
AttractionFragment 类,景点门票类
public class AttractionFragment extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return View.inflate(getActivity(),android.R.layout.simple_list_item_1,null);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.setBackgroundColor(Color.BLUE);
}
}
CollectFragment 类收藏界面的fragment
public class CollectFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView tv = new TextView(getActivity());
tv.setText("这是收藏的界面");
tv.setTextSize(50);
return tv;
}
}
HomePageFragment 首页fragment的界面
public class HomePageFragment extends Fragment implements RadioGroup.OnCheckedChangeListener, ViewPager.OnPageChangeListener {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return View.inflate(getActivity(), R.layout.home_fragment, null);
}
List<Fragment> mList = new ArrayList<>();
RadioGroup home_rg;
ViewPager home_vp;
View view_indicator;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mList.add(new TourismFragment());
mList.add(new AttractionFragment());
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
home_rg = (RadioGroup) view.findViewById(R.id.rg);
home_vp = (ViewPager) view.findViewById(R.id.home_vp);
view_indicator = view.findViewById(R.id.view_indicator);
home_vp.setAdapter(new MyFragmentAdapter(getChildFragmentManager(), mList));
home_rg.setOnCheckedChangeListener(this);
home_vp.addOnPageChangeListener(this);
home_rg.check(R.id.home_rg_rb1);
indicator();
}
int width;
public void indicator() {
width = getResources().getDisplayMetrics().widthPixels / 2;
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, ViewGroup.LayoutParams.MATCH_PARENT);
view_indicator.setLayoutParams(params);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
home_vp.setCurrentItem(checkedId == R.id.home_rg_rb1 ? 0 : 1);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view_indicator.getLayoutParams();
int left = (int) ((position + positionOffset) * width);
params.setMargins(left, 0, 0, 0);
view_indicator.setLayoutParams(params);
}
@Override
public void onPageSelected(int position) {
home_rg.check(position == 0 ? R.id.home_rg_rb1 : R.id.home_rg_rb2);
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
MyFragmentAdapter 类
public class MyFragmentAdapter extends FragmentPagerAdapter {
List<Fragment> mList;
public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.mList = list;
}
@Override
public Fragment getItem(int position) {
return mList.get(position);
}
@Override
public int getCount() {
return mList.size();
}
}
OrderFragment 类,订单的fragment
public class OrderFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView tv = new TextView(getActivity());
tv.setText("这是订单的界面");
tv.setTextSize(50);
return tv;
}
}
PersonalCenterFragment 类 ,个人中心
public class PersonalCenterFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView tv = new TextView(getActivity());
tv.setText("这是个人中心的界面");
tv.setTextSize(50);
return tv;
}
}
SettingFragment 类,设置
public class SettingFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView tv = new TextView(getActivity());
tv.setText("这是设置的界面");
tv.setTextSize(50);
return tv;
}
}
TourismFragment 类,旅游度假页面
public class TourismFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return View.inflate(getActivity(),android.R.layout.simple_list_item_1,null);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.setBackgroundColor(Color.YELLOW);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="com.example.work10_1_10_20.MainActivity">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:layout_margin="50dp"
android:layout_centerHorizontal="true"
android:id="@+id/rl"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_above="@id/rl"
android:layout_centerHorizontal="true"
android:background="@drawable/shape1"
android:text="立即体验 > "
android:id="@+id/btn"
android:textColor="@android:color/white"
/>
</RelativeLayout>
app_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#004E89"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/favor"
android:button="@null"
android:gravity="center"
android:text="收藏" />
<View
android:layout_width="1dp"
android:layout_height="50dp"
android:background="#171717" />
<RadioButton
android:id="@+id/rb2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/order"
android:button="@null"
android:gravity="center"
android:text="订单" />
<View
android:layout_width="1dp"
android:layout_height="50dp"
android:background="#171717" />
<RadioButton
android:id="@+id/rb3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/home"
android:button="@null"
android:gravity="center"
android:text="首页" />
<View
android:layout_width="1dp"
android:layout_height="50dp"
android:background="#171717" />
<RadioButton
android:id="@+id/rb4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/uc"
android:button="@null"
android:gravity="center"
android:text="个人中心" />
<View
android:layout_width="1dp"
android:layout_height="50dp"
android:background="#171717" />
<RadioButton
android:id="@+id/rb5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/setting"
android:button="@null"
android:gravity="center"
android:text="设置" />
</RadioGroup>
<FrameLayout
android:id="@+id/fl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/rg" />
</RelativeLayout>
home_fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:id="@+id/home_rg_rb1"
android:background="@drawable/back"
android:textColor="@android:color/white"
android:padding="10dp"
android:gravity="center"
android:text="旅游度假" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/back"
android:id="@+id/home_rg_rb2"
android:button="@null"
android:textColor="@android:color/white"
android:padding="10dp"
android:gravity="center"
android:text="景点门票" />
</RadioGroup>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="10dp">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray" />
<View
android:id="@+id/view_indicator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#16c742" />
</FrameLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:id="@+id/home_vp"
android:layout_height="wrap_content"/>
</LinearLayout>
colors的配置
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="back_check">#1b207c</color>
<color name="back_check_nor">#80437be2</color>
</resources>