电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android底部菜單欄(RadioGroup+Fragment)美化

瀏覽:46日期:2022-09-23 11:18:15

眾所周知,android的底部菜單欄太重要,平時項目一般都是需要用到的,但是網上關于這方面的demo做得太丑了,實在慘不忍睹,所以這里便用RadioGroup+Fragment的方式寫了一個,順便美化了一下,需要的可以看下。

效果圖:

Android底部菜單欄(RadioGroup+Fragment)美化

項目結構

Android底部菜單欄(RadioGroup+Fragment)美化

MainActivity.java

public class MainActivity extends AppCompatActivity { private FrameLayout frameLayout; private RadioGroup radioGroup; private Fragment[] mFragments; private int mIndex; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initFragment(); setRadioGroupListener(); } private void initFragment() { radioGroup = (RadioGroup) findViewById(R.id.radioGroup); frameLayout = (FrameLayout) findViewById(R.id.fl_content); HomeFragment homeFragment = new HomeFragment(); ShopFragment shopFragment = new ShopFragment(); LiveFragment liveFragment = new LiveFragment(); ShoppingCarFragment shoppingCarFragment = new ShoppingCarFragment(); MineFragment mineFragment = new MineFragment(); //添加到數組 mFragments = new Fragment[]{homeFragment, shopFragment, liveFragment, shoppingCarFragment, mineFragment}; //開啟事務 FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); //添加首頁 ft.add(R.id.fl_content, homeFragment).commit(); //默認設置為第0個 setIndexSelected(0); } private void setIndexSelected(int index) { if (mIndex == index) { return; } FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction ft = fragmentManager.beginTransaction(); //隱藏 ft.hide(mFragments[mIndex]); //判斷是否添加 if (!mFragments[index].isAdded()) { ft.add(R.id.fl_content, mFragments[index]).show(mFragments[index]); } else { ft.show(mFragments[index]); } ft.commit(); //再次賦值 mIndex = index; } private void setRadioGroupListener() { radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i) { case R.id.rb_home: setIndexSelected(0); break; case R.id.rb_shop: setIndexSelected(1); break; case R.id.rb_live: setIndexSelected(2); break; case R.id.rb_shopping_car: setIndexSelected(3); break; case R.id.rb_mine: setIndexSelected(4); break; default: setIndexSelected(0); break; } } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //僅當activity為task根(即首個啟動activity)時才生效,這個方法不會改變task中的activity狀態, // 按下返回鍵的作用跟按下HOME效果一樣;重新點擊應用還是回到應用退出前的狀態; moveTaskToBack(false); return true; } return super.onKeyDown(keyCode, event); }}

Fragment,這里只列出HomeFragment的,其他都是一樣

public class HomeFragment extends BaseFragment { public HomeFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fragment_home,container,false); return view; } }

activity_main.xml布局文件

<?xml version='1.0' encoding='utf-8'?><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'> <FrameLayout android: android:layout_width='match_parent' android:layout_height='match_parent' android:layout_above='@+id/line' /> <View android: android:layout_width='match_parent' android:layout_height='@dimen/line_size' android:layout_above='@+id/radioGroup' android:background='#9e9e9e' /> <RadioGroup android: android:layout_width='match_parent' android:layout_height='wrap_content' android:layout_alignParentBottom='true' android:clickable='true' android:gravity='center' android:orientation='horizontal' android:padding='3dp'> <RadioButton android:android:checked='true' android:drawableTop='@drawable/btn_home' android:text='@string/home' /> <RadioButton android:android:drawableTop='@drawable/btn_shop' android:text='@string/shop' /> <RadioButton android:android:drawableTop='@drawable/btn_live' android:text='@string/live' /> <RadioButton android:android:drawableTop='@drawable/btn_shopping_car' android:text='@string/shopping_car' /> <RadioButton android:android:drawableTop='@drawable/btn_mine' android:text='@string/mine' /> </RadioGroup> </RelativeLayout>

RadioButton的樣式

<style name='RadioButtonStyle'> <item name='android:layout_width'>0dp</item> <item name='android:layout_weight'>1</item> <item name='android:layout_height'>match_parent</item> <item name='android:layout_marginRight'>10dp</item> <item name='android:layout_marginLeft'>10dp</item> <item name='android:button'>@null</item> <item name='android:gravity'>center</item> <item name='android:textColor'>@color/color_radiobutton</item> <item name='android:textSize'>10sp</item></style>

Demo下載地址:底部菜單欄

溫馨提示:以后我自己寫的demo都是用Android Studio寫的了,用Eclipse的同學要的話需要自己改一下,時代在進步,工具也在升級!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 智慧水务|智慧供排水利信息化|水厂软硬件系统-上海敢创 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 玻璃钢型材_拉挤模具_玻璃钢拉挤设备——滑县康百思 | 包装盒厂家_纸盒印刷_礼品盒定制-济南恒印包装有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 开云(中国)Kaiyun·官方网站 - 登录入口| 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 北京公寓出租网-北京酒店式公寓出租平台| 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 亮点云建站-网站建设制作平台| 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 食安观察网 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 学习安徽网| 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 打造全球沸石生态圈 - 国投盛世| 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 |