Android仿微信頁(yè)面底部導(dǎo)航效果代碼實(shí)現(xiàn)
大家在參考本地代碼的時(shí)候要根據(jù)需要適當(dāng)?shù)男薷?,里面有冗余代碼小編沒有刪除。好了,廢話不多說(shuō)了,一切讓代碼說(shuō)話吧!
關(guān)鍵代碼如下所示:
.java里面的主要代碼
public class MainActivity extends BaseActivity implements TabChangeListener { private Fragment[] fragments; private FragZaiXianYuYue fragZaiXianYuYue; private FragDaoLuJiuYuan fragDaoLuJiuYuan; private FragJiFenShangCheng fragJiFenShangCheng; private FragMe fragMe; private ImageView img_right; private ImageView[] imagebuttons; private ImageView img_me_notity; private TextView[] textviews; private int index; private int currentTabIndex;// 當(dāng)前fragment的index private int keyBackClickCount = 0; private int indexChange; private boolean isChangeTab = false; @Override protected void onCreate(Bundle arg0) { // TODO Auto-generated method stub super.onCreate(arg0); setContentView(R.layout.mainactivity); initView(); initTabView(); FragBYRecord.setTabChangeListener(this); FragWXRecord.setTabChangeListener(this); registerMessageReceiver(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); isForeground = true; requestMaintenance(); if (isChangeTab) { if (indexChange == 0) { viewTitle.setZhongJianText(R.string.frag_zxyy); tv_left.setVisibility(View.GONE); } else if (indexChange == 0) { viewTitle.setZhongJianText(R.string.frag_dljy); tv_left.setVisibility(View.GONE); } changeTab(indexChange); isChangeTab = false; } } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); isForeground = false; } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if(null != mMessageReceiver) unregisterReceiver(mMessageReceiver); } private void initView() { viewTitle = (ViewTitle) findViewById(R.id.title_bar); img_right = viewTitle.getYoubianView(); img_right.setVisibility(View.VISIBLE); tv_left = viewTitle.getZuobianTextView(); viewTitle.getZuobianView().setVisibility(View.GONE); tv_left.setText("XXXX"); img_right.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, MineActivity.class); MineActivity.mFragValue = MineActivity.FRAG_SYSTEMMESSAGE; startActivity(intent); } }); tv_left.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { fragMe.addNewCar(); } }); } private void initTabView() { fragZaiXianYuYue = new FragZaiXianYuYue(); fragDaoLuJiuYuan = new FragDaoLuJiuYuan(); fragJiFenShangCheng = new FragJiFenShangCheng(); fragMe = new FragMe(); fragments = new Fragment[] { fragZaiXianYuYue, fragDaoLuJiuYuan, fragJiFenShangCheng, fragMe }; imagebuttons = new ImageView[4]; imagebuttons[0] = (ImageView) findViewById(R.id.ib_zzyy); imagebuttons[1] = (ImageView) findViewById(R.id.ib_dljy); imagebuttons[2] = (ImageView) findViewById(R.id.ib_jfsc); imagebuttons[3] = (ImageView) findViewById(R.id.ib_me); img_me_notity = (ImageView) findViewById(R.id.ib_me_notity); imagebuttons[0].setSelected(true); viewTitle.setZhongJianText(R.string.frag_zxyy); textviews = new TextView[4]; textviews[0] = (TextView) findViewById(R.id.tv_ib_zzyy); textviews[1] = (TextView) findViewById(R.id.tv_dljy); textviews[2] = (TextView) findViewById(R.id.tv_jfsc); textviews[3] = (TextView) findViewById(R.id.tv_me); textviews[0] .setTextColor(getResources().getColor(R.color.color_yellow)); // 添加顯示第一個(gè)fragment getSupportFragmentManager().beginTransaction() .add(R.id.fragment_container, fragZaiXianYuYue) .add(R.id.fragment_container, fragDaoLuJiuYuan) .add(R.id.fragment_container, fragJiFenShangCheng) .add(R.id.fragment_container, fragMe).hide(fragDaoLuJiuYuan) .hide(fragJiFenShangCheng).hide(fragMe).show(fragZaiXianYuYue) .commit(); } public void onTabClicked(View view) { switch (view.getId()) { case R.id.re_zzyy: index = 0; if (fragZaiXianYuYue != null) { } viewTitle.setZhongJianText(R.string.frag_zxyy); tv_left.setVisibility(View.GONE); changeTab(index); break; case R.id.re_dljy: index = 1; viewTitle.setZhongJianText(R.string.frag_dljy); tv_left.setVisibility(View.GONE); changeTab(index); break; case R.id.re_jfsc: if(SharePreferUtil.getBoolean(CommonString.HAVESERVICE, false)){ index = 2; viewTitle.setZhongJianText(R.string.frag_jfsc); tv_left.setVisibility(View.GONE); fragJiFenShangCheng.requestJudgeCar(); changeTab(2); if(SharePreferUtil.getBoolean("isFristGoShop", true)){ SharePreferUtil.putBoolean("isFristGoShop", false); fragJiFenShangCheng.mengcengDialog(); } }else{ showAddServiceDialog(); } break; case R.id.re_me: index = 3; viewTitle.setZhongJianText(R.string.frag_me); tv_left.setVisibility(View.VISIBLE); changeTab(index); break; } } public void changeTab(int index) { if (currentTabIndex != index) { FragmentTransaction trx = getSupportFragmentManager() .beginTransaction(); trx.hide(fragments[currentTabIndex]); if (!fragments[index].isAdded()) { trx.add(R.id.fragment_container, fragments[index]); } trx.show(fragments[index]).commit(); } imagebuttons[currentTabIndex].setSelected(false); // 把當(dāng)前tab設(shè)為選中狀態(tài) imagebuttons[index].setSelected(true); textviews[currentTabIndex].setTextColor(getResources().getColor( R.color.white)); textviews[index].setTextColor(getResources().getColor( R.color.color_yellow)); currentTabIndex = index; } mainactivity.xml: <include layout="@layout/layout_bottom"/> layout_bottom.xml: <?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="wrap_content" android:layout_alignParentBottom="true" android:background="@color/black" android:orientation="vertical" > <!-- 普通底部導(dǎo)航 --> <LinearLayout android:id="@+id/main_bottom" android:layout_width="match_parent" android:layout_height="54dp" android:gravity="center_vertical" android:orientation="horizontal" > <RelativeLayout android:id="@+id/re_zzyy" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:onClick="onTabClicked" android:padding="3dp" > <RelativeLayout android:layout_width="60dp" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:gravity="center" > <ImageView android:id="@+id/ib_zzyy" android:layout_width="30dp" android:layout_height="28dp" android:layout_centerHorizontal="true" android:focusable="false" android:scaleType="centerInside" android:src="@drawable/tab_zaixianyuyue" /> <TextView android:id="@+id/tv_ib_zzyy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/ib_zzyy" android:layout_centerHorizontal="true" android:layout_marginTop="3dp" android:textColor="@color/white" android:text="@string/frag_zxyy" android:textSize="12sp" /> </RelativeLayout> </RelativeLayout> <RelativeLayout android:id="@+id/re_dljy" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:onClick="onTabClicked" android:padding="3dp" > <RelativeLayout android:layout_width="60dp" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:gravity="center" > <ImageView android:id="@+id/ib_dljy" android:layout_width="30dp" android:layout_height="28dp" android:layout_centerHorizontal="true" android:focusable="false" android:scaleType="centerInside" android:src="@drawable/tab_daolujiuyuan" /> <TextView android:id="@+id/tv_dljy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/ib_dljy" android:layout_centerHorizontal="true" android:layout_marginTop="3dp" android:textColor="@color/white" android:text="@string/frag_dljy" android:textSize="12sp" /> </RelativeLayout> </RelativeLayout> <RelativeLayout android:id="@+id/re_jfsc" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:onClick="onTabClicked" android:padding="3dp" > <RelativeLayout android:layout_width="60dp" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:gravity="center" > <ImageView android:id="@+id/ib_jfsc" android:layout_width="30dp" android:layout_height="28dp" android:layout_centerHorizontal="true" android:focusable="false" android:scaleType="centerInside" android:src="@drawable/tab_jifenshangcheng" /> <TextView android:id="@+id/tv_jfsc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/ib_jfsc" android:layout_centerHorizontal="true" android:layout_marginTop="3dp" android:textColor="@color/white" android:text="@string/frag_jfsc" android:textSize="12sp" /> </RelativeLayout> </RelativeLayout> <RelativeLayout android:id="@+id/re_me" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:onClick="onTabClicked" android:padding="3dp" > <RelativeLayout android:layout_width="60dp" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:gravity="center" > <ImageView android:id="@+id/ib_me" android:layout_width="30dp" android:layout_height="28dp" android:layout_centerHorizontal="true" android:focusable="false" android:scaleType="centerInside" android:src="@drawable/tab_me" /> <ImageView android:id="@+id/ib_me_notity" android:layout_width="5dp" android:layout_height="5dp" android:layout_alignTop="@+id/ib_me" android:layout_alignRight="@+id/ib_me" android:scaleType="centerInside" android:src="@drawable/app_34_icon_point_normal" android:visibility="gone" /> <TextView android:id="@+id/tv_me" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/ib_me" android:layout_centerHorizontal="true" android:layout_marginTop="3dp" android:textColor="@color/white" android:text="@string/frag_me" android:textSize="12sp" /> </RelativeLayout> </RelativeLayout> </LinearLayout> </LinearLayout>
以上所述是小編給大家介紹的Android仿微信頁(yè)面底部導(dǎo)航效果代碼實(shí)現(xiàn),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android仿微信調(diào)用第三方地圖應(yīng)用導(dǎo)航(高德、百度、騰訊)
- Android實(shí)現(xiàn)簡(jiǎn)單底部導(dǎo)航欄 Android仿微信滑動(dòng)切換效果
- 微信小程序?qū)崙?zhàn)之仿android fragment可滑動(dòng)底部導(dǎo)航欄(4)
- Android實(shí)現(xiàn)頂部導(dǎo)航欄可點(diǎn)擊可滑動(dòng)效果(仿微信仿豆瓣網(wǎng))
- Android仿微信5實(shí)現(xiàn)滑動(dòng)導(dǎo)航條
- Android仿微信實(shí)現(xiàn)首字母導(dǎo)航條
- Android仿微信之界面導(dǎo)航篇(1)
相關(guān)文章
詳解Android應(yīng)用中DialogFragment的基本用法
Android App中建議使用DialogFragment作為對(duì)話框的容器,DialogFragment類提供了創(chuàng)建對(duì)話框并管理其外觀需要的所有控件,本文主要內(nèi)容便為詳解Android應(yīng)用中DialogFragment的基本用法,而不再需要調(diào)用Dialog的方法需要的朋友可以參考下2016-05-05Android開發(fā)中R.java文件丟失或無(wú)法更新的解決方法
這篇文章主要介紹了Android開發(fā)中R.java文件丟失或無(wú)法更新的解決方法,較為詳細(xì)的列舉分析了出現(xiàn)R.java文件丟失或無(wú)法更新的常見原因及相應(yīng)的解決方法,需要的朋友可以參考下2016-02-02Android UI設(shè)計(jì)之AlertDialog彈窗控件
這篇文章主要為大家詳細(xì)介紹了Android UI設(shè)計(jì)之AlertDialog彈窗控件的使用方法,感興趣的小伙伴們可以參考一下2016-08-08Android編程實(shí)現(xiàn)圓角邊框布局效果的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)圓角邊框布局效果的方法,結(jié)合實(shí)例形式分析了Android TableLayout布局的相關(guān)屬性操作與圓角邊框?qū)崿F(xiàn)技巧,需要的朋友可以參考下2017-06-06Android自定義Camera實(shí)現(xiàn)拍照功能
這篇文章主要為大家詳細(xì)介紹了Android自定義Camera實(shí)現(xiàn)拍照功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android 購(gòu)物車加減功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 實(shí)現(xiàn)購(gòu)物車加減功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android數(shù)據(jù)庫(kù)中事務(wù)操作方法之銀行轉(zhuǎn)賬示例
這篇文章主要介紹了Android數(shù)據(jù)庫(kù)中事務(wù)操作方法之銀行轉(zhuǎn)賬,以具體的銀行轉(zhuǎn)賬為例分析了Android數(shù)據(jù)庫(kù)操作中事務(wù)的使用與回滾相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析
這篇文章主要介紹了Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析,較為詳細(xì)的分析了Android應(yīng)用程序模型中關(guān)于任務(wù)、進(jìn)程、線程的相關(guān)概念及注意事項(xiàng),需要的朋友可以參考下2016-01-01Jetpack?Compose對(duì)比React?Hooks?API相似度
這篇文章主要為大家介紹了Jetpack?Compose對(duì)比React?Hooks?API相似度,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08