亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android自定義ActionBar實例

2020-04-11 11:42:00
字體:
來源:轉載
供稿:網友

本文實例講述了Android自定義ActionBar的實現方法。分享給大家供大家參考。具體實現方法如下:

Android 3.0及以上已經有了ActionBar的API,可以通過引入support package在3.0以下的平臺引用這些API,但這兒呢,完全自定義一個ActionBar,不用引入額外jar包,參照的是開源的UI組件GreeenDroid,項目主頁:https://github.com/cyrilmottier/GreenDroid 。提取出關于ActionBar的相關文件,你可以放在自己的項目中,最后會附下載地址。下面說下在程序中的用法。

新建一個TestActionBar項目,假設你把相關的代碼放在了com.leaf.actionbar這個包下。首先新建一個布局文件,main.xml,如下:

復制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:bar="http://schemas.android.com/apk/res/com.leaf.actionbar"  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
     
    <com.leaf.actionbar.ActionBar 
        android:id="@id/gd_action_bar" 
        android:layout_height="@dimen/gd_action_bar_height" 
        android:layout_width="fill_parent" 
        android:background="?attr/gdActionBarBackground" 
        bar:type="normal" 
        bar:title="Test ActionBar" /> 
</LinearLayout>

這個自定義ActionBar其實是個Linearlayout,還有些自己的屬性,首先要定義一個命名空間,名字隨意,如上面的bar。title就是actionbar的上的標題;type是區分這個actionbar的上左邊item的布局,有三種類型,一種是normal:左邊是一個顯示主頁的imagebutton和顯示title的textview,一種是dashboard,左邊是一個顯示app圖標的imageview和顯示title的textview,一種是empty,左邊只有一個顯示title的textview,右邊都是自己添加的按鈕,默認是normal。如下:分別對應normal、dashboard和empty。

、、

還有一些屬性,homeDrawable可以替換左邊那個圖片,默認是那個主頁的圖片,dividerDrawable:分割線,dividerWidth:分割線寬度,maxItems:右邊添加的item的最大個數??蛇x擇添加。
接著MainActivity.java

復制代碼 代碼如下:
public class MainActivity extends Activity { 
 
    private ActionBar mActionBar; 
    private final Handler mHandler = new Handler(); 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        // 針對type是normal的情況 
        mActionBar = (ActionBar) findViewById(R.id.gd_action_bar); 
        // 添加右邊的具體的item,其實是imagebutton 
        // 它內部自己封裝了一些type,比如refresh、search,主要就是直接使用它內置的一些圖片作為imagebutton的src 
        // 后面是該imagebutton的id,可以在values/ids.xml中定義 
        // 刷新跟其他type有所不一樣,除了一個imagebutton,還有一個progressbar,下面可看到 
        mActionBar.addItem(Type.Refresh, R.id.action_bar_refresh); 
        mActionBar.addItem(Type.Search, R.id.action_bar_search); 
        // 你也可以按照下面一樣自己添加一個item,設置自己的圖片 
        mActionBar.addItem( 
                mActionBar.newActionBarItem(NormalActionBarItem.class) 
                        .setDrawable(R.drawable.gd_action_bar_eye) 
                        .setContentDescription("view"), R.id.action_bar_view); 
        // 給item即imagebutton添加監聽事件 
        mActionBar.setOnActionBarListener(new OnActionBarListener() { 
 
            @Override 
            public void onActionBarItemClicked(int position) { 
 
                if (position == ActionBar.OnActionBarListener.HOME_ITEM) { 
 
                    // 當按左邊的主頁按鈕時所觸發的操作 
                    Toast.makeText(MainActivity.this, "home or back", 
                            Toast.LENGTH_SHORT).show(); 
                    return; 
 
                } 
 
                final ActionBarItem item = mActionBar.getItem(position); 
 
                switch (item.getItemId()) { 
                case R.id.action_bar_refresh: 
                    if (item instanceof LoaderActionBarItem) { 
 
                        mHandler.postDelayed(new Runnable() { 
                            @Override 
                            public void run() { 
                                // 通過這個方法可以來顯示和隱藏那個progressbar 
                                ((LoaderActionBarItem) item).setLoading(false); 
                            } 
                        }, 2000); 
                    } 
 
                    Toast.makeText(MainActivity.this, "refresh", 
                            Toast.LENGTH_SHORT).show(); 
                    break; 
 
                case R.id.action_bar_search: 
 
                    // 你具體的操作 
                    Toast.makeText(MainActivity.this, "search", 
                            Toast.LENGTH_SHORT).show(); 
                    break; 
 
                case R.id.action_bar_view: 
 
                    // 你具體的操作 
                    Toast.makeText(MainActivity.this, "view", 
                            Toast.LENGTH_SHORT).show(); 
                    break; 
                } 
            } 
        }); 
    } 
}

最后還要注意一點,在AndroidManifest.xml文件中:
復制代碼 代碼如下:
<application
        android:icon="@drawable/ic_launcher"
        android:label="testactionbar"
        android:theme="@style/Theme.GreenDroid">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>

不加這句會報錯的,這個theme繼承自parent="android:Theme",里面有些自定義的style。如果你想比如將window的title欄去掉,應該在這個theme文件里再加上:<item name="android:windowNoTitle">true</item>。
最后效果圖:

項目實例代碼點擊此處本站下載

希望本文所述對大家的Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线播放日韩欧美| 成人黄色在线观看| 97视频在线播放| 日韩成人中文电影| 国产91色在线免费| 日韩欧美综合在线视频| 丝袜亚洲另类欧美重口| 亚洲xxx自由成熟| 精品国产欧美成人夜夜嗨| 另类美女黄大片| 国产成人在线一区二区| 5566成人精品视频免费| 久久久久久这里只有精品| 性欧美xxxx视频在线观看| 亚洲精品久久久久久久久久久久久| 久久99视频免费| 亚洲一区二区三区乱码aⅴ| 成人h片在线播放免费网站| 亚洲男人天堂网| 中文字幕av日韩| 日韩欧中文字幕| 中文字幕日本欧美| 国产精品久久久久久久久久99| 欧美精品videossex88| 福利精品视频在线| 91po在线观看91精品国产性色| 亚洲人成网7777777国产| 欧美精品激情blacked18| 久久久电影免费观看完整版| 97精品欧美一区二区三区| 国产成+人+综合+亚洲欧美丁香花| 亚洲欧美制服第一页| 国产有码在线一区二区视频| 欧美日韩国产页| 日韩中文字幕在线看| 1769国产精品| 国产精品成人aaaaa网站| 色综合视频一区中文字幕| 国产精品国产三级国产专播精品人| 日韩在线观看免费高清完整版| 久久久亚洲天堂| 亚洲欧美日韩精品久久奇米色影视| 欧美大片在线免费观看| 日韩电影免费观看在线| 久久伊人精品天天| 精品国产电影一区| 国产视频自拍一区| 日韩美女视频中文字幕| 国产精品96久久久久久又黄又硬| 日韩免费在线播放| 中文字幕一区电影| 精品视频久久久久久| 亚洲aa在线观看| 亚洲精品黄网在线观看| 亚洲视频在线视频| 亚洲黄色在线观看| 亚洲精品一区中文| 国产精品av在线播放| 欧美床上激情在线观看| 日本亚洲精品在线观看| 91午夜理伦私人影院| 欧美成人午夜视频| 中日韩美女免费视频网站在线观看| 久久影院在线观看| 成人写真视频福利网| 国产精品久久久久久久7电影| 亚洲一区二区久久久久久久| 亚洲高清不卡av| 韩国精品美女www爽爽爽视频| 亚洲精品wwwww| 中文字幕亚洲国产| 久久久久久国产精品久久| 国产一区欧美二区三区| 韩国国内大量揄拍精品视频| 中文字幕欧美国内| 欧美疯狂做受xxxx高潮| 庆余年2免费日韩剧观看大牛| 日韩久久精品成人| 精品无人区太爽高潮在线播放| 国产狼人综合免费视频| 亚洲另类激情图| 永久免费毛片在线播放不卡| 国内精品久久久久| 91精品国产综合久久香蕉的用户体验| 日韩中文字幕网址| 欧美专区福利在线| 日韩免费精品视频| 91精品国产91久久久久久吃药| 久久久国产在线视频| 日韩精品在线第一页| 亚洲午夜性刺激影院| 法国裸体一区二区| 久热99视频在线观看| 欧美激情免费在线| 伊人久久男人天堂| 亚洲天堂av在线播放| 久久夜精品香蕉| 国产精品视频永久免费播放| 国产午夜精品理论片a级探花| 国产欧美精品在线播放| 久久影院免费观看| 欧美—级a级欧美特级ar全黄| 日韩三级成人av网| 青青久久aⅴ北条麻妃| 国产亚洲精品一区二区| 亚洲精品久久久久国产| 97在线视频一区| 国产亚洲欧美日韩精品| 欧美成人一区二区三区电影| 97热精品视频官网| 一区二区三区无码高清视频| 欧美极品少妇xxxxⅹ喷水| 成人免费xxxxx在线观看| 日本国产精品视频| 成人精品aaaa网站| 在线日韩第一页| 亚洲**2019国产| 精品久久国产精品| 亚洲成人av在线播放| 国产精品免费久久久久久| 91美女福利视频高清| 日韩美女在线观看| 国产精品一区二区3区| 欧美日韩一区二区精品| 欧美性开放视频| 超碰97人人做人人爱少妇| 国产91露脸中文字幕在线| 欧美性xxxx极品hd欧美风情| 国产视频观看一区| 国产精品自产拍高潮在线观看| 欧美性猛交xxxx免费看漫画| 色妞一区二区三区| 久久伊人精品天天| 亚洲香蕉成人av网站在线观看| 国产精品视频免费在线| 亚洲综合在线播放| 久久久精品国产| 国产精品白嫩美女在线观看| 视频在线观看99| 国产精品wwww| 国产日产久久高清欧美一区| 欧美在线一级va免费观看| 亚洲一区二区三区在线视频| www.精品av.com| 国产成人精品在线播放| 国产一区二区三区视频免费| 97视频在线观看免费| 国产一区视频在线| 色综合亚洲精品激情狠狠| 97视频色精品| 中文字幕日韩在线观看| 日本三级久久久| 日韩欧美亚洲国产一区| 亚洲美女激情视频| 亚洲人成网站色ww在线| 国产欧美在线播放| 日韩不卡中文字幕| 国产精品福利久久久| 欧洲亚洲免费在线| 日本一区二区三区在线播放| 久久人91精品久久久久久不卡| 97婷婷大伊香蕉精品视频| 亚洲第一区中文字幕| 国产精品视频精品视频|