RadioGroup + ViewPager + Fragment 实现滑动展示界面
来源:互联网 发布:上海华腾软件怎么样 编辑:程序博客网 时间:2024/05/01 05:11
主布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="120px" android:layout_below="@+id/mainHead" android:orientation="horizontal"></RadioGroup> <View android:id="@+id/vView" android:layout_width="match_parent" android:layout_height="1px" android:layout_alignBottom="@+id/radioGroup" android:background="#e29c9999"></View> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/vView"> <android.support.v4.view.ViewPager android:id="@+id/vpContent" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="10dp"></android.support.v4.view.ViewPager> </RelativeLayout></RelativeLayout>
主java代码
public class BijiFragment extends BaseFragment { //创建radiobutton相关 private RadioGroup radioGroup; private RadioButton[] radioButtons; private List<String> radioButtonDatas; // viewpager 相关 private ViewPager vpContent; private List<Fragment> fragments; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_biji_layout, container, false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); radioGroup = (RadioGroup) mActivity.findViewById(R.id.radioGroup); vpContent = (ViewPager) mActivity.findViewById(R.id.vpContent); initRadioButton(); initVpContent(); } //动态创建RadioButton private void initRadioButton() { radioButtonDatas = new ArrayList<>(); radioButtonDatas.add("美妆"); radioButtonDatas.add("精选"); radioButtonDatas.add("杂志"); radioButtons = new RadioButton[radioButtonDatas.size()]; //创建RadioButton for (int i = 0; i < radioButtonDatas.size(); i++) { RadioButton radioButton = new RadioButton(mActivity); Bitmap bm = null; radioButton.setButtonDrawable(new BitmapDrawable(bm));//去除圆圈 radioButton.setBackgroundResource(R.drawable.main_radiobutton_select); radioButton.setText(radioButtonDatas.get(i)); radioButton.setGravity(Gravity.CENTER); int screenWidth = getResources().getDisplayMetrics().widthPixels; int eachWidth = screenWidth / radioButtonDatas.size(); RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(eachWidth, RadioGroup.LayoutParams.MATCH_PARENT); radioButton.setLayoutParams(params); radioGroup.addView(radioButton); radioButtons[i] = radioButton; } radioButtons[0].setChecked(true); // radioGroup的点击事件 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkId) { for (int i = 0; i < radioGroup.getChildCount(); i++) { if (radioButtons[i].getId() == checkId) { vpContent.setCurrentItem(i); } } } }); } //viewpager private void initVpContent() { fragments = new ArrayList<>(); fragments.add(new FragmentOne()); fragments.add(new FragmentTwo()); fragments.add(new FragmentThree()); vpContent.setAdapter((new VpContentAdapter(mActivity.getSupportFragmentManager(), fragments))); vpContent.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { radioButtons[position].setChecked(true); } @Override public void onPageScrollStateChanged(int state) { } }); }}
radioButton的Drawable
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" > <layer-list> <item android:top="38dp"> <shape> <solid android:color="#efda3362"></solid> </shape> </item> </layer-list> </item> <item android:state_checked="false" android:drawable="@color/transparent"></item></selector>
其次就是fragment的代码
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_one,container,false); oneListView = (ListView) view.findViewById(R.id.oneListView); return view;}
...
0 0
- RadioGroup + ViewPager + Fragment 实现滑动展示界面
- ViewPager + Fragment+radiogroup实现滑动标签页
- ViewPager+Fragment实现界面滑动
- 使用ViewPager+Fragment+RadioGroup实现类似微信主界面
- fragment viewpager界面滑动
- 【Android】viewpager+fragment实现界面滑动,顶部导航也滑动
- ViewPager+RadioGroup实现仿微信主界面
- Android ViewPager+RadioGroup+Fragment超高仿微信主界面
- Android ViewPager+RadioGroup+Fragment超高仿微信主界面
- Android ViewPager+RadioGroup+Fragment超高仿微信主界面
- RadioGroup+Fragment实现界面切换
- ViewPager+Fragment滑动切换界面
- 安卓ViewPager+RadioGroup实现多组图片滑动展示(每组图片不定量)
- Android ViewPager和Fragment实现顶部导航界面滑动效果
- [周四]viewpager fragment实现界面的滑动切换
- Android ViewPager和Fragment实现顶部导航界面滑动效果
- Android ViewPager和Fragment实现顶部导航界面滑动效果
- 在ViewPager中使用Fragment实现界面左右滑动
- Ghost博客Ghost博客指南:用PM2守护Node.js进程听语音指南:用PM2守护Node.js进程听语音
- 正则表达式
- 第十五周 OJ 字符串比较
- 发型糟糕的一天(简单的单调栈运用)
- Linux下安装svn服务器
- RadioGroup + ViewPager + Fragment 实现滑动展示界面
- Android网络框架xUtils中的View的视图绑定注解操作
- HBase 负载均衡
- Spring - SpEL
- javascript拼接字符串
- 6-HFile
- 创建TV布局
- kernel trick的原始想法
- CSS中behavior属性语法的使用介绍