中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么利用RadioGroup實現底部導航欄

發布時間:2021-06-28 15:56:45 來源:億速云 閱讀:240 作者:Leah 欄目:移動開發

Android中怎么利用RadioGroup實現底部導航欄,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

布局:

<?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"                 android:orientation="vertical">      <include layout="@layout/fragment_content"/>      <View         android:layout_width="match_parent"         android:layout_height="1px"         android:background="@color/grey_300"         android:elevation="20dp"/>      <RadioGroup         android:id="@+id/radio_group"         android:layout_width="match_parent"         android:layout_height="56dp"         android:layout_alignParentBottom="true"         android:background="@color/white"         android:orientation="horizontal">          <RadioButton             android:id="@+id/rb_home"             style="@style/radiobutton_style"             android:checked="true"             android:drawableTop="@drawable/radiobutton_bg_home"             android:text="@string/item_home"             />          <RadioButton             android:id="@+id/rb_location"             style="@style/radiobutton_style"             android:drawableTop="@drawable/radiobutton_bg_location"             android:text="@string/item_location"/>          <RadioButton             android:id="@+id/rb_like"             style="@style/radiobutton_style"             android:drawableTop="@drawable/radiobutton_bg_like"             android:text="@string/item_like"/>          <RadioButton             android:id="@+id/rb_me"             style="@style/radiobutton_style"             android:drawableTop="@drawable/radiobutton_bg_me"             android:text="@string/item_person"/>      </RadioGroup> </RelativeLayout>

這里的drawableTop使用了狀態選擇器

<selector xmlns:android="http://schemas.android.com/apk/res/android">     <item android:drawable="@drawable/home_fill" android:state_checked="true"/>     <item android:drawable="@drawable/home"/> </selector>

style

<style name="radiobutton_style">         <item name="android:layout_width">0dp</item>         <item name="android:padding">3dp</item>         <item name="android:layout_height">match_parent</item>         <item name="android:layout_weight">1</item>         <item name="android:button">@null</item><!--去除RadioButton默認帶的圓點-->         <item name="android:gravity">center</item>         <item name="android:textSize">12sp</item>     </style>

代碼

初始化的代碼就不記錄了,都是一些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();    }

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天台县| 互助| 上杭县| 庆城县| 南和县| 南汇区| 胶州市| 乌苏市| 阜平县| 洛川县| 文登市| 多伦县| 新津县| 田林县| 醴陵市| 喀喇沁旗| 大理市| 大港区| 乐至县| 新疆| 噶尔县| 房产| 德江县| 万载县| 福州市| 浦县| 尉犁县| 荥经县| 浏阳市| 沙洋县| 信宜市| 红原县| 兴和县| 清远市| 三亚市| 通山县| 阳泉市| 化德县| 江北区| 黄石市| 太原市|