Android中怎么利用RadioGroup實現(xiàn)底部導航欄,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到浦北網站設計與浦北網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站設計、成都網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、國際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋浦北地區(qū)。
布局:
這里的drawableTop使用了狀態(tài)選擇器
style
代碼
初始化的代碼就不記錄了,都是一些findViewById,實現(xiàn)過程無非就是對RadioButton進行監(jiān)聽一下:
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();//設置狀態(tài) transaction.commit(); }
狀態(tài)的設置
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(); }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。