您的位置:首页 > 其它

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(); } }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: