Viewpager+fragment实现底部导航栏
2017-08-31 15:41
423 查看
布局:
---------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <FrameLayout android:id="@+id/frameLayout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"></FrameLayout> <RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio01" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector1" android:gravity="center" android:tag="0" android:checked="true" android:text="漫画" android:textColor="@drawable/text_color" android:textSize="20sp" /> <RadioButton android:id="@+id/radio02" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector2" android:gravity="center" android:tag="1" android:text="发现" android:textColor="@drawable/text_color" android:textSize="20sp" /> <RadioButton android:id="@+id/radio03" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector3" android:gravity="center" android:tag="2" android:text="社区" android:textColor="@drawable/text_color" android:textSize="20sp" /> <RadioButton android:id="@+id/radio04" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/selector4" android:gravity="center" android:tag="3" android:text="我的" android:textColor="@drawable/text_color" android:textSize="20sp" /> </RadioGroup> </LinearLayout>
---------------------------------------------------------------------------------------------------------------------------------
package com.example.e.viewpagerdemo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.widget.RadioButton; import android.widget.RadioGroup; import java.util.ArrayList; import java.util.List; import fragment.Fragment1_ShouYe; import fragment.Fragment2_ShiPing; import fragment.Fragment3_TouTiao; import fragment.Fragment4_WoDe; public class MainActivity extends AppCompatActivity { private RadioGroup rg; private List<Fragment> list; private Fragment1_ShouYe fragment1; private Fragment2_ShiPing fragment2; private Fragment3_TouTiao fragment3; private Fragment4_WoDe fragment4; private FragmentManager fm; @Override protected void onCreate(Bundle savedInstanceState) { getSupportActionBar().hide(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rg = (RadioGroup) findViewById(R.id.radioGroup); list = new ArrayList<>(); fm = getSupportFragmentManager(); fragment1 = new Fragment1_ShouYe(); fragment2 = new Fragment2_ShiPing(); fragment3 = new Fragment3_TouTiao(); fragment4 = new Fragment4_WoDe(); list.add(fragment1); list.add(fragment2); list.add(fragment3); list.add(fragment4); FragmentTransaction transaction = fm.beginTransaction(); transaction.add(R.id.frameLayout, list.get(0)); transaction.add(R.id.frameLayout, list.get(1)); transaction.add(R.id.frameLayout, list.get(2)); transaction.add(R.id.frameLayout, list.get(3)); transaction.show(list.get(0)).hide(list.get(1)).hide(list.get(2)).hide(list.get(3)); transaction.commit(); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { RadioButton rb = (RadioButton) group.findViewById(checkedId); < 13cbc strong>int [/b]tag = Integer.parseInt(rb.getTag().toString()); FragmentTransaction transaction1 = fm.beginTransaction(); for (int i = 0; i < list.size(); i++) { if (tag == i) { transaction1.show(list.get(i)); } else { transaction1.hide(list.get(i)); } } transaction1.commit(); } }); } }
--------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio01" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:checked="true" android:gravity="center" android:padding="5dp" android:text="周三" android:textColor="@drawable/text_color" android:textSize="15sp" /> <RadioButton android:id="@+id/radio02" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:gravity="center" android:padding="5dp" android:text="周四" android:textColor="@drawable/text_color" android:textSize="15sp" /> <RadioButton android:id="@+id/radio03" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:gravity="center" android:padding="5dp" android:text="周五" android:textColor="@drawable/text_color" android:textSize="15sp" /> <RadioButton android:id="@+id/radio04" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:gravity="center" android:padding="5dp" android:text="周六" android:textColor="@drawable/text_color" android:textSize="15sp" /> <RadioButton android:id="@+id/radio05" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:gravity="center" android:padding="5dp" android:text="昨天" android:textColor="@drawable/text_color" android:textSize="15sp" /> <RadioButton android:id="@+id/radio06" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:gravity="center" android:padding="5dp" android:text="今天" android:textColor="@drawable/text_color" android:textSize="15sp" /> </RadioGroup> <LinearLayout android:layout_width="match_parent" android:layout_height="2dp" android:orientation="horizontal" android:weightSum="6"> <View android:id="@+id/view" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="#FDE23D"></View> </LinearLayout> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="5dp"></android.support.v4.view.ViewPager> </LinearLayout>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.example.e.viewpagerdemo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.RadioButton; import android.widget.RadioGroup; import java.util.Arrays; import java.util.List; import fragment.Fragment1; import fragment.Fragment2; import fragment.Fragment3; import fragment.Fragment4; import fragment.Fragment5; import fragment.Fragment6; public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { private ViewPager viewPager; private RadioGroup radioGroup; private View v; private RadioButton radio01; private RadioButton radio02; private RadioButton radio03; private RadioButton radio04; private RadioButton radio05; private RadioButton radio06; private List<? extends Fragment> list; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { getSupportActionBar().hide(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); viewPager.setOffscreenPageLimit(6); adapter = new MyAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); radioGroup.setOnCheckedChangeListener(this); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { int width = v.getWidth(); if (positionOffsetPixels != 0) { v.setX(width * position + positionOffsetPixels / 6); } } @Override public void onPageSelected(int position) { // if(radioGroup!=null && radioGroup.getChildCount()>position){ // ((RadioButton)radioGroup.getChildAt(position)).performClick(); // } radioGroup.check(radioGroup.getChildAt(position).getId()); } @Override public void onPageScrollStateChanged(int state) { } }); } private void initView() { viewPager = (ViewPager) findViewById(R.id.viewPager); radioGroup = (RadioGroup) findViewById(R.id.radioGroup); v = findViewById(R.id.view); radio01 = (RadioButton) findViewById(R.id.radio01); radio02 = (RadioButton) findViewById(R.id.radio02); radio03 = (RadioButton) findViewById(R.id.radio03); radio04 = (RadioButton) findViewById(R.id.radio04); radio05 = (RadioButton) findViewById(R.id.radio05); radio06 = (RadioButton) findViewById(R.id.radio06); list = Arrays.asList(new Fragment1(), new Fragment2(), new Fragment3(), new Fragment4(), new Fragment5(), new Fragment6()); } @Override public void onCheckedChanged(RadioGroup group, int checkedId) {
int position=0; switch (checkedId) { case R.id.radio01: position=0; break; case R.id.radio02: position=1; break; case R.id.radio03: position=2; break; case R.id.radio04: position=3; break; case R.id.radio05: position=4; break; case R.id.radio06: position=5; break; } if (viewPager.getCurrentItem()!=position){ viewPager.setCurrentItem(position); }} class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }}
相关文章推荐
- Android 用 TabLayout + ViewPager + Fragment 实现顶部、底部导航栏
- 使用ViewPager+Fragment实现底部导航栏
- TabLayout+ViewPager+Fragment实现顶部或底部导航栏
- Android Fragment + ViewPager 实现类微信 底部导航栏 和 显示消息提醒
- Android实现底部导航栏加侧滑(BottomNavigationView+ViewPager+Fragment)
- 安卓开发--应用市场的界面制作(一)--viewpager+fragment实现可滑动的底部导航栏
- Fragment+viewPager实现底部导航栏
- Tablayout + ViewPager + fragment 实现底部或顶部导航栏
- Fragment和ViewPager实现底部导航栏
- FragmentTabHost+viewPager实现底部导航栏
- ViewPager + Fragment 实现主界面底部导航栏
- Android开发:顶部&底部Tab导航栏实现(TabLayout+ViewPager+Fragment)
- Fragment的应用之底部导航栏的实现(二)之应用ViewPager
- 使用Fragment+ViewPager实现底部导航栏
- 底部导航栏实现页面的切换(三):Fragment + RadioGroup + ViewPager
- FragmentTabHost+ViewPager实现滑动的底部导航栏
- Android博客挑错系列之一FragmentTabHost和ViewPager实现底部导航栏
- Android项目ViewPager+Fragment+RadioButton实现底部导航栏切换
- TabLayout+ViewPager+Fragment实现带图标和文字的底部导航栏
- 【Android】Fragment+Viewpager实现底部导航栏(带小红点)