1. 程式人生 > >Android官方導航欄ActionBar(二)—— Action View、Action Provider、Navigation Tabs的詳細用法

Android官方導航欄ActionBar(二)—— Action View、Action Provider、Navigation Tabs的詳細用法

    private static class TabListener<T extends Fragment> implements  ActionBar.TabListener{
        private Fragment mFragment;
        private  Activity mActivity;
        private  String mTag;
        private  Class<T> mClass;
        private String mTitle;

        public TabListener(Activity activity,String tag,Class<T> clz,String title){
            mActivity 
=activity; mTag = tag; mClass = clz; mTitle = title; } @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { if(mFragment==null){ mFragment= Fragment.instantiate(mActivity,mClass.getName()); Bundle bundle
= new Bundle(); bundle.putString("name",mTitle); mFragment.setArguments(bundle); fragmentTransaction.add(R.id.content,mFragment,mTag); }else{ fragmentTransaction.attach(mFragment); } Toast.makeText(mActivity,tab.getText()
+"onTabSelected",Toast.LENGTH_SHORT).show(); } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { if(mFragment!=null){ fragmentTransaction.detach(mFragment); } Toast.makeText(mActivity,tab.getText()+"onTabUnselected",Toast.LENGTH_SHORT).show(); } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { Toast.makeText(mActivity,tab.getText()+"onTabReselected",Toast.LENGTH_SHORT).show(); } } 新增Tab的方法如下: private void initActionBarTabs(ActionBar actionBar){ ActionBar.Tab tab1 = actionBar.newTab(); tab1.setText("撥號").setTabListener(new TabListener<TabFragment>(this,"bohao",TabFragment.class,"撥號")); actionBar.addTab(tab1); ActionBar.Tab tab2 = actionBar.newTab(); tab2.setText("聯絡人").setTabListener(new TabListener<TabFragment>(this,"lxr",TabFragment.class,"聯絡人")); actionBar.addTab(tab2); ActionBar.Tab tab3 = actionBar.newTab(); tab3.setText("資訊").setTabListener(new TabListener<TabFragment>(this,"xx",TabFragment.class,"資訊")); actionBar.addTab(tab3); }

相關推薦

Android官方導航ActionBar—— Action ViewAction ProviderNavigation Tabs詳細用法

private static class TabListener<T extends Fragment> implements ActionBar.TabListener{ private Fragment mFragment; private

Android底部導航實現之RadioGroup

這裡簡單記錄一下Android底部導航欄通過RadioGroup+Fragment的實現。 這裡寫圖片描述 佈局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and

Android官方導航ActionBar

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://sch

android官方導航ActionBar(三)之高仿優酷首頁

<style name="Theme.Holo.Light.DarkActionBar"> <item name="windowContentOverlay">@drawable/ab_solid_shadow_holo</item>

aNDROID的語言設置

aid android andro list oid hao123 androi syn ron aNDROIDsYNCHRONIZED%E6%AD%BB%E9%94%81 http://music.baidu.com/songlist/495775942 http:/

Formik官方應用案例解析同步校驗

ssa tools require min roc 是否 支持 array tps 簡介 官方示例工程formik-09x-synchronous-validation-example展示的是基於Formik的表單開發中如何進行定制的同步校驗的問題。 上一個實例相關內容回顧

Android框架原始碼解析之OKhttp

原始碼在:https://github.com/square/okhttp 包實在是太多了,OKhttp核心在這塊https://github.com/square/okhttp/tree/master/okhttp 直接匯入Android Studio中即可。 基本使用:

Android IPC程序間通訊Messenger

Messenger實現程序間低併發即時通訊 Messenger是一種輕量級的IPC,底層實現是AIDL,即可認為Binder。通過在Message中攜帶Bundle進而實現程序之間傳遞資料。由於Messenger一次只能處理一個請求,因此服務端們不用考慮執行緒同步問題。 一,我們在服務端

Android Paging library詳解

重要API及原始碼分析 文章目錄 1.重要API介紹 1.1 DataSource 1.2 PageList 1.3 PagedListAdapter 2.原始碼解析 1.重要API介紹 Pagin

【安卓本卓】Android系統原始碼篇之Source Insight

Source Insight(以下簡稱SI) 一、SI簡介        SI是一款面向專案開發的程式編輯器和程式碼瀏覽器,它提供了一個檢視將分散在各個地方的程式碼匯合在一起形成一個虛擬的整體,供開發者方便地閱讀和編輯,如下圖所示。它已經持續維護了10多年了,旨在提

Android四大元件之ContentProvider

上節提到的四大元件之ContentProvider的簡單使用,在這篇文章中詳細的介紹其中的一些方法。 1.String getType(Uri uri)方法 首先看看官方對它的解釋: /** * Implement this to handle requests

Android-螢幕左右側滑

第二種方式我們介紹的是使用Android源生控制元件android.support.v4.widget.DrawerLayout來實現螢幕的左側滑和右側滑(其中包括點選側滑和手動滑動側滑),還可以用程式碼來控制開啟和關閉手動側滑: 先付上兩張效果圖供參考,如下: 首頁 左側滑

Android 有效地展示圖片Processing Bitmaps Off the UI Thread 在ui執行緒外處理bitmap

原文連結http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html 我們在上節課討論了BitmapFactory.decode系列的方法,但是如果原圖的資料需要從硬碟或者網路或者別的途徑而非記憶

佈局-------上下寬高固定,中間自適應

上一篇寫的是左右寬高固定,中間自適應,根據上一篇的內容,總結了下上下寬高固定,中間自適應的幾種佈局方式,話不多說,直接上程式碼。 <!DOCTYPE html> <html> <head> <title>上中下三欄佈局</title>

Android之訊息處理機制Handler的本質-Message和Looper到底是什麼?

目錄 Android之訊息處理機制(二) 以下皆為乾貨,比較幹,需要讀者細細理解。  前面(一)已經解釋了Handler的基本機制了,下面來概括一下本質。 一、MessageQueue        MessageQueue其實就

Android 9 功能和 API-----------顯示屏缺口支援劉海屏或凹凸屏

詳細的適配方案,大家可以看我之前的文章: https://blog.csdn.net/wypeng2010/article/details/81019361     Android 9 支援最新的全面屏,其中包含為攝像頭和揚聲器預留空間的螢幕缺口。 通過 

Android學習之動畫總結

寫在前面:本文是根據hencoder提供的教程寫的總結。HenCoder https://hencoder.com。      關於ObjectAnimator可以用ofInt()來做整數的屬性動畫和ofFloat()來做小數的屬性動畫。當需要對其他型別的屬性來做動畫就需要

Android開發————簡易APP設計

實驗內容 使用sqlite 給備忘錄app增加資料儲存功能 實驗步驟 活動1: Xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://sche

ArcGIS for Android 的學習與應用 如何移除指定的點和線?

在地圖上新增點和線的時候,我們有時候會遇到要移除或者切換指定的點和線的操作。那麼如何移除指定的點和線呢? ArcGIS的api裡點和線都是由GraphicsOverlay類來進行建立新增的。通過Graphic物件將點或者線的圖形物件(SimpleMarkerSy

演算法工程師修仙之路:python3官方文件筆記

本筆記來自於python手冊的中文版 使用 Python 直譯器 呼叫 Python 直譯器 通常你可以在主視窗輸入一個檔案結束符(Unix系統是Control-D,Windows系統是Control-Z)讓直譯器以 0 狀態碼退出。如果那沒有作用,你可以通過輸入