日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android 中使用RadioGroup和Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能

瀏覽:170日期:2022-09-18 10:31:43

在一些購(gòu)物商城中經(jīng)常會(huì)遇到這類效果,效果圖如下:

先看效果圖

Android 中使用RadioGroup和Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能

步驟一:完成對(duì)主界面main.xml的創(chuàng)建:

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'> <FrameLayoutandroid: android:layout_width='match_parent'android:layout_height='match_parent'android:layout_alignParentTop='true'/> <RadioGroupandroid:layout_width='match_parent'android:layout_height='wrap_content'android: android:layout_alignParentBottom='true'android:orientation='horizontal'><RadioButton android: android:layout_width='0dp' android:layout_height='match_parent' android:layout_weight='1' android:button='@null' android:drawableTop='@drawable/rb_home_selector' android:text='首頁(yè)' /><RadioButton android: android:layout_width='0dp' android:layout_height='match_parent' android:layout_weight='1' android:button='@null' android:drawableTop='@drawable/rb_discover_selector' android:text='熱賣' /><RadioButton android: android:layout_width='0dp' android:layout_height='match_parent' android:layout_weight='1' android:button='@null' android:drawableTop='@drawable/rb_cart_selector' android:text='購(gòu)物車' /><RadioButton android: android:layout_width='0dp' android:layout_height='match_parent' android:layout_weight='1' android:button='@null' android:drawableTop='@drawable/rb_user_selector' android:text='我的' /> </RadioGroup></RelativeLayout>

radioButton中重復(fù)使用的樣式:被抽取出來(lái)在style中寫(xiě)出

<style name='fragment'><item name='android:layout_width'>match_parent</item><item name='android:layout_height'>match_parent</item><item name='android:padding'>5dp</item><item name='android:gravity'>center</item><item name='android:textColor'>@drawable/rb_text_color</item><item name='android:textSize'>16sp</item><item name='android:textStyle'>normal</item> </style>

點(diǎn)擊RadioButton之后,導(dǎo)航欄文字顏色發(fā)生改變,聲明在drawable中名字為:rb_text_color代碼如下:

<?xml version='1.0' encoding='utf-8'?><selector xmlns:android='http://schemas.android.com/apk/res/android'> <item android:state_selected='true' android:color='#FF0000'/> <item android:color='#808080'/></selector>

導(dǎo)航欄圖標(biāo)發(fā)生變化這里只寫(xiě)其中一個(gè)其他三個(gè)都基本一樣:

<?xml version='1.0' encoding='utf-8'?><selector xmlns:android='http://schemas.android.com/apk/res/android'> <item android:drawable='@drawable/icon_cartfill_press' android:state_selected='true' /> <item android:drawable='@drawable/icon_cart' /></selector>

完成這些基本步驟之后,接下來(lái)就需要寫(xiě)Fragment的布局

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:gravity='center'> <TextViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:text='購(gòu)物車'android:textSize='30sp' /></LinearLayout>

寫(xiě)出其中一個(gè)另外三個(gè)類似。

之后后臺(tái)代碼中創(chuàng)建Fragment,這里也寫(xiě)其中一個(gè):CartFragment

package com.example.fragmentdemo;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;public class CartFragment extends Fragment { private View view; private TextView tv_home; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {if (view==null){ view = inflater.inflate(R.layout.cart_fragment,container,false);}return view; }}

步驟二:在MainActivity中,完成對(duì)fragment的切換功能具體注釋已在代碼中給出。

package com.example.fragmentdemo;import androidx.appcompat.app.AppCompatActivity;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentManager;import androidx.fragment.app.FragmentTransaction;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.RadioButton;import android.widget.RadioGroup;import java.time.LocalDate;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { private RadioButton rb_home,rb_discover,rb_cart,rb_user; private RadioGroup rg_group; private List<Fragment> fragments; private int position=0; private static final String TAG = 'MainActivity'; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);rb_home=findViewById(R.id.rb_home);rb_discover=findViewById(R.id.rb_discover);rb_cart=findViewById(R.id.rb_cart);rb_user=findViewById(R.id.rb_user);rg_group=findViewById(R.id.rg_group);//默認(rèn)選中第一個(gè)rb_home.setSelected(true);rg_group.setOnCheckedChangeListener(this);//初始化fragmentinitFragment();//默認(rèn)布局,選第一個(gè)defaultFragment(); } private void defaultFragment() {FragmentManager fragmentManager = getSupportFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();transaction.replace(R.id.fragment_layout,fragments.get(0));transaction.commit(); } private void setSelected() {rb_home.setSelected(false);rb_discover.setSelected(false);rb_cart.setSelected(false);rb_user.setSelected(false); } private void initFragment() {fragments = new ArrayList<>();fragments.add(0,new HomeFragment());fragments.add(1,new DiscoverFragment());fragments.add(2,new CartFragment());fragments.add(3,new UserFragment()); } @Override public void onCheckedChanged(RadioGroup group, int i) {//獲取fragment管理類對(duì)象FragmentManager fragmentManager = getSupportFragmentManager();//拿到fragmentManager的觸發(fā)器FragmentTransaction transaction = fragmentManager.beginTransaction();switch (i){ case R.id.rb_home:position=0;//調(diào)用replace方法,將fragment,替換到fragment_layout這個(gè)id所在UI,或者這個(gè)控件上面來(lái)//這是創(chuàng)建replace這個(gè)事件,如果想要這個(gè)事件執(zhí)行,需要把這個(gè)事件提交給觸發(fā)器//用commit()方法transaction.replace(R.id.fragment_layout,fragments.get(0));//將所有導(dǎo)航欄設(shè)成默認(rèn)色setSelected();rb_home.setSelected(true);break; case R.id.rb_discover:position=1;transaction.replace(R.id.fragment_layout,fragments.get(1));//將所有導(dǎo)航欄設(shè)成默認(rèn)色setSelected();rb_discover.setSelected(true);break; case R.id.rb_cart:position=2;transaction.replace(R.id.fragment_layout,fragments.get(2));//將所有導(dǎo)航欄設(shè)成默認(rèn)色setSelected();rb_cart.setSelected(true);break; case R.id.rb_user:position=3;transaction.replace(R.id.fragment_layout,fragments.get(3));//將所有導(dǎo)航欄設(shè)成默認(rèn)色setSelected();rb_user.setSelected(true);break;}//事件的提交transaction.commit(); }}

這樣就完成了一個(gè)簡(jiǎn)單的底部導(dǎo)航欄功能,這個(gè)只能通過(guò)點(diǎn)擊切換fragment,不能通過(guò)左右滑動(dòng)去切換fragment。

以上就是Android 中使用RadioGroup+Fragment實(shí)現(xiàn)底部導(dǎo)航欄的功能的詳細(xì)內(nèi)容,更多關(guān)于android 底部導(dǎo)航欄的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久久久久丰满| 亚洲综合色婷婷在线观看| 日韩中文字幕无砖| 亚洲久久在线| 美女网站久久| 免费成人在线视频观看| 香蕉久久久久久久av网站| 伊人影院久久| 国产精品美女久久久| 久久国产精品99国产| 热久久免费视频| 日韩中文字幕无砖| 久久超级碰碰| 福利欧美精品在线| 日本精品不卡| 伊人精品一区| 日韩专区欧美专区| 91精品国产自产精品男人的天堂| 国产情侣一区| 国产精品久久久久久久久久齐齐| 麻豆成人在线观看| 肉色欧美久久久久久久免费看 | 精品理论电影在线| 日韩av片子| 香蕉久久精品| 亚洲综合日韩| 日韩高清欧美激情| 国内不卡的一区二区三区中文字幕| 久久青青视频| 欧美日韩国产综合网| 最新国产精品视频| 欧美午夜三级| 国产999精品在线观看| 久久影视一区| 亚洲欧洲av| 精品久久影院| 国产麻豆综合| 国产日韩中文在线中文字幕| 97精品国产一区二区三区| 一区免费在线| 国产日韩免费| 日韩一区电影| 男人操女人的视频在线观看欧美| 国产剧情一区二区在线观看| 日韩免费在线| 亚洲涩涩av| 免费在线成人| 日韩不卡视频在线观看| 综合一区在线| 欧美www视频在线观看| 久久精品国语| 日韩一区二区三区在线看| 久久影院午夜精品| 亚洲专区视频| 日韩精品网站| 国产欧美一区二区三区米奇| 久久精品国产www456c0m| 日韩中文字幕| 欧美影院三区| 久久亚洲人体| 视频一区二区三区入口| 久久麻豆视频| 亚洲精品看片| 欧美福利一区| 美女久久99| 日韩精品亚洲专区在线观看| 四虎4545www国产精品 | 中文一区在线| 国产在线观看91一区二区三区 | 久久免费国产| 国产精品久久久一区二区| 不卡在线一区二区| 国产精品18| 免费人成黄页网站在线一区二区| 精品福利久久久| 深夜福利亚洲| 久久高清免费| 久久精品福利| 亚洲精品一级二级三级| 电影亚洲精品噜噜在线观看| 青草综合视频| 国产精品社区| 激情欧美一区二区三区| 国产一区二区三区亚洲| 亚洲一区欧美| 欧美日韩国产免费观看视频| 国模大尺度视频一区二区| 欧美日韩黄网站| 免费日韩av片| 欧美aa一级| 精品视频黄色| 国产一精品一av一免费爽爽| 免费欧美在线视频| 亚洲美洲欧洲综合国产一区 | 欧美专区18| 久久亚洲精品中文字幕蜜潮电影| 美女视频免费精品| 欧美亚洲综合视频| 亚洲精品在线二区| 蜜桃久久av一区| 国产精品呻吟| 在线视频精品| 蜜臀91精品国产高清在线观看| 狠狠久久伊人| 欧美国产亚洲精品| 国产亚洲精aa在线看| 亚洲天堂日韩在线| 免费日韩视频| 日韩中文字幕1| 久久亚洲风情| 亚洲自啪免费| 亚洲不卡av不卡一区二区| 成人国产精品一区二区网站| 精品久久一区| 国产不卡一区| 久久毛片亚洲| 色婷婷综合网| 亚洲黄色中文字幕| 美女av在线免费看| 亚洲va中文在线播放免费| 日韩在线观看| 夜鲁夜鲁夜鲁视频在线播放| 肉色欧美久久久久久久免费看 | 亚洲一区二区三区中文字幕在线观看| 一区三区视频| 国产精品美女久久久| 噜噜噜久久亚洲精品国产品小说| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品美女久久久| 综合色一区二区| 久久国产人妖系列| 久久99影视| 福利一区二区三区视频在线观看| 国产福利91精品一区二区| 97精品中文字幕| 亚洲91精品| 黄色日韩精品| 男人的天堂久久精品| 日本在线视频一区二区| 亚洲精品伊人| 国产精品网在线观看| 精品久久99| 国产精品亚洲一区二区三区在线观看| 99久久亚洲精品蜜臀| 香蕉精品999视频一区二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 精品91久久久久| 亚洲毛片视频| 国产亚洲欧美日韩精品一区二区三区| 久久精品女人| 久久青草久久| 午夜在线观看免费一区| 日韩黄色在线观看| 久久精品九色| 婷婷综合网站| 亚洲ab电影| 美女视频免费精品| 亚洲午夜电影| 亚洲欧美网站在线观看| 欧美激情日韩| 亚洲伦乱视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品夜夜夜| 中文在线а√天堂| 亚洲一区中文| 欧美日韩午夜电影网| 精品久久久久久久| 91久久视频| 免费在线日韩av| 欧美精品激情| 国产精品久久久久久模特| 播放一区二区| 中文字幕一区二区三区日韩精品 | 亚洲啊v在线免费视频| 精品国产黄a∨片高清在线| 91九色精品| 国产精品夜夜夜| 欧洲激情综合| 国产亚洲一区| 久久中文字幕av| 人人爱人人干婷婷丁香亚洲| 国产成人在线中文字幕| 丝袜亚洲另类欧美| 欧美国产中文高清| 欧美在线亚洲| 国产精品成人一区二区网站软件| 91精品国产福利在线观看麻豆| 亚洲精品韩国| 亚洲精品.com| 国产精品观看| 亚洲欧美日韩综合国产aⅴ| 久久久精品区| 亚洲精品伊人| 中文字幕系列一区| 婷婷成人av| 私拍精品福利视频在线一区| 欧美日韩99| 午夜在线精品偷拍| 亚洲va中文在线播放免费| 国产午夜久久av|