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

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

Android 中使用RadioGroup和Fragment實現底部導航欄的功能

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

在一些購物商城中經常會遇到這類效果,效果圖如下:

先看效果圖

Android 中使用RadioGroup和Fragment實現底部導航欄的功能

步驟一:完成對主界面main.xml的創建:

<?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='首頁' /><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='購物車' /><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中重復使用的樣式:被抽取出來在style中寫出

<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>

點擊RadioButton之后,導航欄文字顏色發生改變,聲明在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>

導航欄圖標發生變化這里只寫其中一個其他三個都基本一樣:

<?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>

完成這些基本步驟之后,接下來就需要寫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='購物車'android:textSize='30sp' /></LinearLayout>

寫出其中一個另外三個類似。

之后后臺代碼中創建Fragment,這里也寫其中一個: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中,完成對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);//默認選中第一個rb_home.setSelected(true);rg_group.setOnCheckedChangeListener(this);//初始化fragmentinitFragment();//默認布局,選第一個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管理類對象FragmentManager fragmentManager = getSupportFragmentManager();//拿到fragmentManager的觸發器FragmentTransaction transaction = fragmentManager.beginTransaction();switch (i){ case R.id.rb_home:position=0;//調用replace方法,將fragment,替換到fragment_layout這個id所在UI,或者這個控件上面來//這是創建replace這個事件,如果想要這個事件執行,需要把這個事件提交給觸發器//用commit()方法transaction.replace(R.id.fragment_layout,fragments.get(0));//將所有導航欄設成默認色setSelected();rb_home.setSelected(true);break; case R.id.rb_discover:position=1;transaction.replace(R.id.fragment_layout,fragments.get(1));//將所有導航欄設成默認色setSelected();rb_discover.setSelected(true);break; case R.id.rb_cart:position=2;transaction.replace(R.id.fragment_layout,fragments.get(2));//將所有導航欄設成默認色setSelected();rb_cart.setSelected(true);break; case R.id.rb_user:position=3;transaction.replace(R.id.fragment_layout,fragments.get(3));//將所有導航欄設成默認色setSelected();rb_user.setSelected(true);break;}//事件的提交transaction.commit(); }}

這樣就完成了一個簡單的底部導航欄功能,這個只能通過點擊切換fragment,不能通過左右滑動去切換fragment。

以上就是Android 中使用RadioGroup+Fragment實現底部導航欄的功能的詳細內容,更多關于android 底部導航欄的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产女人18毛片水真多18精品| 日韩国产成人精品| 视频一区二区三区在线| 天堂√8在线中文| 国产精品一区二区三区四区在线观看 | 国产精品a久久久久| 午夜亚洲福利在线老司机| 久久伊人久久| 日韩在线一区二区| 国产一区日韩欧美| 欧美精品日日操| caoporn视频在线| 麻豆精品99| 欧美aⅴ一区二区三区视频| 91成人在线精品视频| 中文字幕一区二区av| 黄色欧美日韩| 国户精品久久久久久久久久久不卡| 岛国精品一区| 精品国产一区二区三区2021| 国产精品久久久久久久久久齐齐| 日韩国产在线观看一区| 日韩中文欧美在线| 在线观看一区| 蜜桃久久精品一区二区| 免费观看日韩电影| 中文字幕免费精品| 日韩中文字幕麻豆| 亚洲免费观看高清完整版在线观| 蜜臀久久99精品久久久久宅男 | 中文字幕成在线观看| 精品久久亚洲| 美女久久久久久 | 久久国产免费看| 欧美精品观看| 鲁大师精品99久久久| 国产精品中文字幕制服诱惑| 国产精品久久久久毛片大屁完整版| 国产精品嫩模av在线| 国产极品嫩模在线观看91精品| 国产精品.xx视频.xxtv| 日韩av在线播放网址| 日本久久成人网| 日韩欧美二区| 国产专区精品| 久久精品色播| 国产精品白丝一区二区三区| 荡女精品导航| 国产黄大片在线观看| 久久国产日韩| 午夜日韩av| 日本亚洲三级在线| 久久av超碰| 91综合网人人| 欧美aa国产视频| 老司机精品久久| 日韩精品国产精品| 欧美激情福利| 久久久久久亚洲精品美女| www在线观看黄色| 五月天综合网站| 日韩在线黄色| 韩国一区二区三区视频| 女生影院久久| 亚洲欧美日韩国产一区二区| 欧美一级二级视频| 97在线精品| 在线一区免费观看| 911精品国产| 群体交乱之放荡娇妻一区二区| 美女91精品| 欧美精品中文| 久久久国产精品一区二区中文| 欧洲激情综合| 一区二区精彩视频| 美女尤物国产一区| 欧美一区久久久| 综合日韩在线| 蜜臀久久精品| 欧美一级二区| 亚洲成人国产| 日本亚洲欧洲无免费码在线| 精品国产亚洲一区二区三区大结局| 九九综合在线| 88久久精品| 久久久五月天| 日韩激情视频网站| 日本精品影院| 日日夜夜免费精品| 91亚洲国产成人久久精品| 视频一区免费在线观看| 国产精品久久久网站| 1024精品久久久久久久久| 91精品国产自产在线丝袜啪| 国产精久久一区二区| 91久久亚洲| 国产精品一级| 丝袜亚洲另类欧美| 色婷婷亚洲mv天堂mv在影片| 日韩一区二区三区精品| 99精品在线| 精品一区视频| 亚洲ww精品| 成人在线网站| 国产精品videosex极品| 欧美性感美女一区二区| 国产精品扒开腿做爽爽爽软件| 伊人精品在线| 久久毛片亚洲| 国产亚洲高清一区| 热久久久久久久| 日韩欧美字幕| 91成人小视频| 国产日韩综合| 亚洲成人不卡| 久久永久免费| 日韩午夜视频在线| 黄色日韩精品| 久久伊人久久| 免费在线欧美视频| 欧美精选一区二区三区| 91av亚洲| 国产欧美丝祙| 国产日韩三级| 国产精品扒开腿做爽爽爽软件| 国产精品v亚洲精品v日韩精品| 国产欧美自拍一区| 国产激情久久| 三上亚洲一区二区| 久久久久国产一区二区| 亚洲午夜黄色| 国产亚洲亚洲| 玖玖精品视频| 三级亚洲高清视频| 视频一区二区三区入口| 午夜久久av | 91免费精品国偷自产在线在线| 日韩激情综合| 国产精品网在线观看| 精品女同一区二区三区在线观看| 国产成人精品一区二区三区视频| 国产高清不卡| 欧美国产91| 麻豆亚洲精品| 97成人在线| 久久香蕉网站| 欧美日韩精品一区二区视频| 久久中文字幕av一区二区不卡| 一区三区视频| 无码日韩精品一区二区免费| 91麻豆精品激情在线观看最新 | 国产精品福利在线观看播放| 成人日韩在线观看| 久久福利毛片| 欧美精品影院| 国产精品99久久精品| 欧美日韩一二| 蜜臀精品久久久久久蜜臀 | 一区二区国产在线| 国产精品久久久久久久久久齐齐 | 日韩毛片视频| 亚洲黄色在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚州av乱码久久精品蜜桃| 亚洲日产av中文字幕| 国产精品22p| 成人羞羞视频播放网站| 亚洲一区二区成人| 国产麻豆精品| 久久久久久久久99精品大| 日本欧洲一区二区| 九九久久国产| 亚洲一卡久久| 久久午夜影院| 夜夜精品视频| 国产精品分类| re久久精品视频| 久久黄色影视| 久久精品青草| 日本亚洲欧洲无免费码在线| 久久青青视频| 日韩欧美四区| 青青久久av| 97久久亚洲| 亚洲婷婷免费| 国产精品毛片aⅴ一区二区三区| 欧美日韩亚洲在线观看| 国产探花在线精品| 欧美日韩三区| 麻豆久久一区二区| 老牛影视一区二区三区| 精品国产精品国产偷麻豆| 一本色道精品久久一区二区三区| 国产精品v一区二区三区| 国产韩日影视精品| 精品视频99| 日韩综合一区二区三区| 久久精品不卡| 里番精品3d一二三区| 蜜臀久久99精品久久久久久9|