fragment+viewpager实现布局
来源:互联网 发布:linux系统下载iso 编辑:程序博客网 时间:2024/05/22 13:45
1.先布局实现mian.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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="com.bwei.fragment.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/pager" android:layout_centerHorizontal="true" android:orientation="horizontal" android:background="#ccc" > <RadioButton android:id="@+id/radio0" android:layout_width="0dp" android:layout_height="match_parent" android:checked="true" android:button="@null" android:layout_weight="1" android:text="微信" android:drawableTop="@mipmap/ic_launcher_round" android:gravity="center" /> <RadioButton android:id="@+id/radio1" android:layout_width="0dp" android:layout_height="match_parent" android:button="@null" android:layout_weight="1" android:text="通讯录" android:drawableTop="@mipmap/ic_launcher_round" android:gravity="center" /> <RadioButton android:id="@+id/radio2" android:layout_width="0dp" android:layout_height="match_parent" android:button="@null" android:layout_weight="1" android:text="发现" android:drawableTop="@mipmap/ic_launcher_round" android:gravity="center" /> <RadioButton android:id="@+id/radio3" android:layout_width="0dp" android:layout_height="wrap_content" android:button="@null" android:layout_weight="1" android:text="我的" android:drawableTop="@mipmap/ic_launcher_round" android:gravity="center"/> </RadioGroup></RelativeLayout>
2.创建3个fragment 要继承Fragment类v4包下的
public class FragmentThree extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //引入布局文件 View view = inflater.inflate(R.layout.fragmentthree, null); return view; }}
3.创建fragment 相对应的布局文件
<?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"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="230dp" android:text="one" /></RelativeLayout>
4.创建适配器继承FragmentPagerAdapter
package com.bwei.fragment;import android.content.Context;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import java.util.List;public class MyAdapter extends FragmentPagerAdapter { private List<Fragment> fragments; private Context context; //构造方法 public MyAdapter(FragmentManager fm, List<Fragment> fragments, Context context) { super(fm); this.fragments = fragments; this.context = context; } //得到item条目 @Override public Fragment getItem(int position) { return fragments.get(position); } //得到数量 @Override public int getCount() { return fragments.size(); }}
5.在mainActivity实现效果
package com.bwei.fragment;import android.graphics.Color;import android.os.Bundle;import android.support.annotation.IdRes;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener,ViewPager.OnPageChangeListener { private ViewPager vPager; private List<Fragment> fragments; private FragmentManager fm; private RadioGroup mRadioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); initDate(); } private void initView() { vPager=(ViewPager) findViewById(R.id.pager); vPager.setOnPageChangeListener(this); mRadioGroup=(RadioGroup) findViewById(R.id.radioGroup1); mRadioGroup.setOnCheckedChangeListener(this); } private void initDate() { fragments=new ArrayList<Fragment>(); //实例化Fragment FragmentOne fragmentOne = new FragmentOne(); FragmentTwo fragmentTwo = new FragmentTwo(); FragmentThree fragmentThree = new FragmentThree(); //添加到集合 fragments.add(fragmentOne); fragments.add(fragmentTwo); fragments.add(fragmentThree); //得到getSupportFragmentManager()的管理器 fm = getSupportFragmentManager(); //得到适配器 MyAdapter myAdapter = new MyAdapter(fm, fragments, this); //设置适配器 vPager.setAdapter(myAdapter); } //ViewPager.OnPageChangeListener监听事件 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i <fragments.size() ; i++) { RadioButton radiobutton = (RadioButton) mRadioGroup.getChildAt(i); if (i==position) { radiobutton.setChecked(true); //设置选中的颜色 radiobutton.setBackgroundColor(Color.RED); }else { radiobutton.setChecked(false); radiobutton.setBackgroundColor(Color.BLACK); radiobutton.setBackgroundColor(Color.BLACK); } } } @Override public void onPageScrollStateChanged(int state) { } //RadioGroup的监听事件 @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { for (int j = 0; j <fragments.size() ; j++) { //得到radiobutton RadioButton radiobutton = (RadioButton) mRadioGroup.getChildAt(j); int id = radiobutton.getId(); Toast.makeText(this,id+"", Toast.LENGTH_SHORT).show(); //判断radiobutton的id是否等于选中的id if (radiobutton.getId()==i) { //设置当前页 vPager.setCurrentItem(j); } } }}6.最后的效果图
阅读全文
0 0
- fragment+viewpager实现布局
- TabLayout + ViewPager + Fragment 实现布局
- ViewPager+Fragment实现主页面布局
- Viewpager+Fragment实现项目主布局
- ViewPager+Fragment的布局
- ViewPager+Fragment布局框架
- 简单viewpager布局加fragment联动 可以实现效果
- Viewpager+RadioButton+fragment页面布局
- ViewPager+Fragment布局中的Fragment数据更新
- ViewPager+Fragment实现TabHost
- Android实现ViewPager+Fragment
- TabLayout 实现ViewPager+fragment
- ViewPager+Fragment实现
- Fragment+ViewPager 实现仿微信
- ViewPager实现Fragment切换
- ViewPager实现Tab布局
- Android界面布局大集合(Fragment+ViewPager)
- RadioGroup+ViewPager+Fragment的框架布局
- Android基于HLS和RTMP协议的第三方SDK选择
- (3) Ribbon服务消费
- c++中的virtual虚函数的使用
- python--冒泡法
- Equals 和 == 在java中的区别
- fragment+viewpager实现布局
- 遗传规划方法概述
- 如何用ArcScene进行洪水淹没分析
- 对i++,i--,++i,--i深刻认识以及printf()函数打印的过程
- ActiveMQ入门到精通-ActiveMQ安装(单机)
- Spring MVC程序中得到静态资源文件css,js,图片
- 给微信小程序添加一个客服会话
- 第一次自己编译so包,app自己监测本应用是否被卸载
- 水经注地图发布服务中件间功能简介