Android中怎么利用RadioGroup实现底部导航栏

Android中怎么利用RadioGroup实现底部导航栏,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

站在用户的角度思考问题,与客户深入沟通,找到浦北网站设计与浦北网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、虚拟空间、企业邮箱。业务覆盖浦北地区。

布局:

                                                                  

这里的drawableTop使用了状态选择器

           

style

         0dp         3dp         match_parent         1         @null         center         12sp     

代码

初始化的代码就不记录了,都是一些findViewById,实现过程无非就是对RadioButton进行监听一下:

mRadioGroup.setOnCheckedChangeListener(this);       @Override     public void onCheckedChanged(RadioGroup group, int checkId) {         FragmentTransaction transaction = getFragmentManager().beginTransaction();         switch (checkId) {             case R.id.rb_home:                 if (mHomeFragment == null) {                     mHomeFragment = HomeFragment.newInstance(getString(R.string.item_home));                 }                 transaction.replace(R.id.sub_content, mHomeFragment);                 break;             case R.id.rb_location:                 if (mLocationFragment == null) {                     mLocationFragment = LocationFragment.newInstance(getString(R.string.item_location));                 }                 transaction.replace(R.id.sub_content, mLocationFragment);                 break;             case R.id.rb_like:                 if (mLikeFragment == null) {                     mLikeFragment = LikeFragment.newInstance(getString(R.string.item_like));                 }                 transaction.replace(R.id.sub_content, mLikeFragment);                 break;             case R.id.rb_me:                 if (mPersonFragment == null) {                     mPersonFragment = PersonFragment.newInstance(getString(R.string.item_person));                 }                 transaction.replace(R.id.sub_content, mPersonFragment);                 break;         }         setTabState();//设置状态         transaction.commit();     }

状态的设置

private void setTabState() {         setHomeState();         setLocationState();         setLikeState();         setMeState();      }      /**      * set tab home state      */     private void setHomeState() {         if (mRadioHome.isChecked()) {             mRadioHome.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));         } else {             mRadioHome.setTextColor(ContextCompat.getColor(getActivity(), R.color.black));         }     }      private void setLocationState() {         if (mRadioLocation.isChecked()) {             mRadioLocation.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));         } else {             mRadioLocation.setTextColor(ContextCompat.getColor(getActivity(), R.color.black));         }     }      private void setLikeState() {         if (mRadioLike.isChecked()) {             mRadioLike.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));         } else {             mRadioLike.setTextColor(ContextCompat.getColor(getActivity(), R.color.black));         }     }      private void setMeState() {         if (mRadioMe.isChecked()) {             mRadioMe.setTextColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));         } else {             mRadioMe.setTextColor(ContextCompat.getColor(getActivity(), R.color.black));         }     }

这里需要注意的是, setDefaultFragment();我写在onCreateVew里面并没有生效。这里我写在了onStart()方法里了。

@Override    public void onStart() {        setDefaultFragment();//写在onCreateView里面,当页面跑到其他Fragment再回来就不会生效        super.onStart();    }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


文章名称:Android中怎么利用RadioGroup实现底部导航栏
地址分享:http://scyanting.com/article/gshdci.html