仿照微信的界面,即ViewPager+Fragment的结合使用
2015-11-08 20:34
218 查看
主布局文件:
MainActivity代码:
这是其中一个Fragment,其它三个一模一样:
这样就完成了,这是结果图:
不知道为什么,底部几张图片不能完整地显示,文字也不能居中显示,有没有高手指点一二?
android:drawableTop="@drawable/weixin_bg"用的是状态选择器,所以要写4个状态选择器,图片的
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> <RadioGroup android:id="@+id/rg" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" > <!-- android:button="@null" 表示去掉RadioButton中的圈圈 --> <RadioButton android:id="@+id/rb_weixin" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/weixin_bg" android:gravity="center_vertical" android:text="微信" android:textSize="16sp" /> <RadioButton android:id="@+id/rb_contact" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/contact_bg" android:gravity="center_vertical" android:text="通讯" android:textSize="16sp" /> <RadioButton android:id="@+id/rb_found" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/found_bg" android:gravity="center_vertical" android:text="发现" android:textSize="16sp" /> <RadioButton android:id="@+id/rb_me" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/me_bg" android:gravity="center_vertical" android:text="我" android:textSize="16sp" /> </RadioGroup> </RelativeLayout>
MainActivity代码:
public class MainActivity extends FragmentActivity implements OnCheckedChangeListener, OnPageChangeListener { private static final int WEIXIN = 0; private static final int CONTACT = 1; private static final int FOUND= 2; private static final int ME= 3; private ViewPager vp; /**RadioGroup*/ private RadioGroup rg; //四个RadioButton private RadioButton rb_weixin; private RadioButton rb_contact; private RadioButton rb_found; private RadioButton rb_me; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); rg = (RadioGroup) findViewById(R.id.rg); rg.setOnCheckedChangeListener(this); vp.setAdapter(new MainAdapter(getSupportFragmentManager())); vp.setOnPageChangeListener(this); rb_weixin = (RadioButton) findViewById(R.id.rb_weixin); rb_contact = (RadioButton) findViewById(R.id.rb_contact); rb_found = (RadioButton) findViewById(R.id.rb_found); rb_me = (RadioButton) findViewById(R.id.rb_me); //一进入程序就让微信RadioButton显示为被点击状态 rb_weixin.setChecked(true); } class MainAdapter extends FragmentPagerAdapter{ List<Fragment> list=new ArrayList<Fragment>(); private WeixinFragment weixinFragment; private ContactFragment contactFragment; private FoundFragment foundFragment; private MeFragment meFragment; public MainAdapter(FragmentManager fm) { super(fm); weixinFragment = new WeixinFragment(); contactFragment = new ContactFragment(); foundFragment = new FoundFragment(); meFragment = new MeFragment(); list.add(weixinFragment); list.add(contactFragment); list.add(foundFragment); list.add(meFragment); } @Override public Fragment getItem(int position) { Fragment fragment = list.get(position); return fragment; } @Override public int getCount() { return list.size(); } } //RadioButton被点击时 @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_weixin: vp.setCurrentItem(WEIXIN); break; case R.id.rb_contact: vp.setCurrentItem(CONTACT); break; case R.id.rb_found: vp.setCurrentItem(FOUND); break; case R.id.rb_me: vp.setCurrentItem(ME); break; default: break; } } //ViewPager滑动状态改变时 @Override public void onPageScrollStateChanged(int arg0) { System.out.println("onPageScrollStateChanged"); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { System.out.println("onPageScrolled"); } //当ViewPager滑动停止时 @Override public void onPageSelected(int position) { System.out.println("onPageSelected"); switch (position) { case WEIXIN: rb_weixin.setChecked(true); break; case CONTACT: rb_contact.setChecked(true); break; case FOUND: rb_found.setChecked(true); break; case ME: rb_me.setChecked(true); break; default: break; } } }
这是其中一个Fragment,其它三个一模一样:
public class WeixinFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.fragment_home, null); return view; } }
这样就完成了,这是结果图:
不知道为什么,底部几张图片不能完整地显示,文字也不能居中显示,有没有高手指点一二?
相关文章推荐
- 微信企业号开发(二)-回调接口
- [004]微信公众账号开发教程第1篇-根据用户openID获取用户基本信息
- 微信开发学习路线
- Android之附加图片—— 仿微信图片选择器
- XMPP框架 微信项目开发之登录的实现——登录的步骤示例
- 022.随机数输出
- 微信开发中bug的修复和遇到的问题。
- Android之微信接入分享,登录功能。
- 用Notepad++中的NppExec插件编译运行Java小程序
- XMPP框架 微信项目开发之XMPP框架的导入——XMPP框架导入的详细步骤
- 玩转微信开发(带你读懂开源微信营销平台微擎)
- 一个典型的JDBC小程序
- JAVA微信支付 实现服务端返回预付单号和签名
- 微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法
- Android支付宝、微信支付阐述
- XMPP框架 微信项目开发之XMPP框架目录作用详解——以及登录的Demo分析
- 原创视频|手把手教你用Axure做一个微信高保真原型(一)
- 调用微信支付遇到的问题
- 微信开发(六)微信分享接入
- 微信开发(八)自动回复和多客服开发