Android實(shí)現(xiàn)底部圖標(biāo)與Fragment的聯(lián)動(dòng)實(shí)例
本文介紹了ndroid實(shí)現(xiàn)底部圖標(biāo)與Fragment的聯(lián)動(dòng),分享給大家,希望此文章對(duì)各位有所幫助。
效果如下:

1.首先在res下的drawable下新建四個(gè)圖標(biāo)的xml,分別把圖標(biāo)的選中和未選中的狀態(tài)設(shè)置好,所有的圖片可以放在res下新建的一個(gè)drawable-xhdpi目錄下,這里僅展示一個(gè)圖標(biāo)的xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/ic_nav_home_press"/> <item android:state_checked="false" android:drawable="@drawable/ic_nav_home"/> <item android:drawable="@drawable/ic_nav_home"/> </selector>
2.在布局中開始布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.baway.lizongshu.view.activity.MainActivity">
<FrameLayout
android:id="@+id/framelayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/fenlei"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="分類"
android:button="@null"
android:checked="true"
android:drawableTop="@drawable/fenlei"
android:gravity="center"
android:textSize="12sp"
android:tag="0"
/>
<RadioButton
android:id="@+id/gouwuche"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="購物車"
android:button="@null"
android:drawableTop="@drawable/gouwuche"
android:gravity="center"
android:textSize="12sp"
android:tag="1"
/>
<RadioButton
android:id="@+id/qita"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="其他"
android:button="@null"
android:drawableTop="@drawable/qita"
android:gravity="center"
android:textSize="12sp"
android:tag="2"
/>
<RadioButton
android:id="@+id/wode"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="我的"
android:button="@null"
android:drawableTop="@drawable/wode"
android:gravity="center"
android:textSize="12sp"
android:tag="3"
/>
</RadioGroup>
</LinearLayout>
</LinearLayout>
3.新建四個(gè)Fragment類,這里僅展示一個(gè)
public class FenleiFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fenlei, container, false);
return view;
}
}
4. 主界面中:
public class MainActivity extends AppCompatActivity {
private RadioGroup rg;
private Fragment[] mfragments;
private FragmentManager fm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
initdata();
}
private void initdata() {
//定義一個(gè)Fragment數(shù)組,存放四個(gè)Fragment
mfragments=new Fragment[4];
mfragments[0]=new FenleiFragment();
mfragments[1]=new GouwucheFragment();
mfragments[2]=new QitaFragment();
mfragments[3]=new WodeFragment();
//獲得Fragment管理者
fm = getSupportFragmentManager();
//處理
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.framelayout,mfragments[0],"0");
ft.commit();
}
private void initview() {
rg=(RadioGroup) findViewById(R.id.rg);
//RadioGroup的監(jiān)聽事件
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//找到當(dāng)前選中的圖標(biāo)
RadioButton rb= (RadioButton) group.findViewById(checkedId);
//找到所選圖標(biāo)的標(biāo)簽并轉(zhuǎn)換為整數(shù)類型放到下面的方法中
int i = Integer.parseInt(rb.getTag().toString().trim());
showAndHideFragment(i);
}
});
}
//展示和隱藏Fragment的方法
private void showAndHideFragment(int position) {
FragmentTransaction transaction = fm.beginTransaction();
//如果沒有fragment就在framelayout里面加上
if (!mfragments[position].isAdded()){
transaction.add(R.id.framelayout,mfragments[position],""+position);
}
//把所有的fragment設(shè)為隱藏
for (Fragment fragment:mfragments){
transaction.hide(fragment);
}
//把選中的設(shè)為顯示
transaction.show(mfragments[position]);
transaction.commit();
}
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實(shí)現(xiàn)聯(lián)動(dòng)下拉框 下拉列表spinner的實(shí)例代碼
- Android中使用開源框架Citypickerview實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)選擇
- Android仿eleme點(diǎn)餐頁面二級(jí)聯(lián)動(dòng)列表
- Android自定義WheelView地區(qū)選擇三級(jí)聯(lián)動(dòng)
- Android中TabLayout+ViewPager實(shí)現(xiàn)tab和頁面聯(lián)動(dòng)效果
- 最好用的Android省市區(qū)三級(jí)聯(lián)動(dòng)選擇效果
- Android省市區(qū)三級(jí)聯(lián)動(dòng)控件使用方法實(shí)例講解
- Android實(shí)現(xiàn)兩個(gè)ScrollView互相聯(lián)動(dòng)的同步滾動(dòng)效果代碼
- android-wheel控件實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)效果
- Android Fragment實(shí)現(xiàn)列表和內(nèi)容聯(lián)動(dòng)
相關(guān)文章
Kotlin高效實(shí)現(xiàn) Android ViewPager2 頂部導(dǎo)航之動(dòng)態(tài)配置與性能優(yōu)化指
文章介紹了使用AndroidViewPager2和TabLayout實(shí)現(xiàn)高效頂部導(dǎo)航的方法,并提供了優(yōu)化指南,包括避免不必要的Fragment實(shí)例化、動(dòng)態(tài)配置頁面、使用Kotlin特性減少冗余代碼等,通過這些優(yōu)化,代碼變得更加高效、簡潔和易于維護(hù),感興趣的朋友跟隨小編一起看看吧2025-03-03
Android5.0+ CollapsingToolbarLayout使用詳解
這篇文章主要為大家詳細(xì)介紹了Android5.0+ CollapsingToolbarLayout使用,感興趣的小伙伴們可以參考一下2016-09-09
Android 中自定義Dialog樣式的Activity點(diǎn)擊空白處隱藏軟鍵盤功能(dialog不消失)
項(xiàng)目中需要開發(fā)帶有EditText的Dialog顯示,要求在編輯完EditText時(shí),點(diǎn)擊Dilog的空白處隱藏軟鍵盤。但是Dialog不會(huì)消失。下面通過實(shí)例代碼給大家分享實(shí)現(xiàn)方法,需要的的朋友參考下吧2017-04-04
Android中的popupwindow進(jìn)入和退出的動(dòng)畫效果
這篇文章主要介紹了Android中的popupwindow進(jìn)入和退出的動(dòng)畫,需要的朋友可以參考下2017-04-04
Android RecyclerView仿新聞?lì)^條的頻道管理功能
這篇文章主要介紹了Android RecyclerView仿新聞?lì)^條的頻道管理功能,需要的朋友可以參考下2017-06-06
Android 雙擊Back鍵退出應(yīng)用的實(shí)現(xiàn)方法
這篇文章主要介紹了Android 雙擊Back鍵退出應(yīng)用的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
Android編程滑動(dòng)效果之Gallery+GridView實(shí)現(xiàn)圖片預(yù)覽功能(附demo源碼下載)
這篇文章主要介紹了Android編程滑動(dòng)效果之Gallery+GridView實(shí)現(xiàn)圖片預(yù)覽功能,結(jié)合實(shí)例形式分析了Android通過GridView和Gallery兩個(gè)控件模仿Gallery圖像集圖片預(yù)覽功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-02-02

