導航:首頁 > 操作系統 > androidtoolbar菜單

androidtoolbar菜單

發布時間:2023-07-11 19:28:23

1. android怎樣動態設置toolbar背景

首先使用 Toolbar 來代替ActionBar
,這樣我們就能夠把ActionBar嵌入到我們的View體系中,然後我們"禁用"系統的status bar,由 DrawerLayout
來處理status bar,最後抽屜部分往上移,或者裁剪掉status bar那一部分。
控制Status bar
在你的values-v21裡面添加新的主題,並設置一下屬性:
values-v21/themes.xml
<style name="AppTheme">
<item name="android:">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>

這里解釋一下:

,將它設置為true,系統將在你的window裡面繪制status
bar,默認為 TRUE
,之所以要寫出來是因為你的theme有可能是繼承過來的,確保為true。(在這里小插曲一下,因調試時,總以為注釋了這段代碼就以為是false,程
序員思維害苦了我。另外從命名來看,Android把它稱為system bar,可能是為了與能被我們處理的status bar區分開而做的改變。)
statusBarColor 設置為透明是因為我們不再需要系統的status bar,因為我們無法控制它的位置,後面我們將交由 DrawerLayout 來處理。
使用DrawerLayout
首先,你的布局文件應該是和這個類似的:
<android.support.v4.widget.DrawerLayout
xmlns:android="url"
android:id="@+id/my_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Your normal content view -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- We use a Toolbar so that our drawer can be displayed
in front of the action bar -->
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
<!-- The rest of your content view -->
</LinearLayout>
<!-- The navigation drawer -->
<ScrimInsetsFrameLayout xmlns:android="rul"
xmlns:app="url"
android:layout_width="304dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="@android:color/white"
android:elevation="10dp"
android:fitsSystemWindows="true"
app:insetForeground="#4000">
<!-- Your drawer content -->
</ScrimInsetsFrameLayout>
</android.support.v4.widget.DrawerLayout>


在這裡布局裡面我們用到了一個的開源類 ScrimInsetsFrameLayout ,它的主要作用就是利用 fitsSystemWindows
的回調方法 fitSystemWindows(Rect insets) 來獲取status bar的大小,然後調整畫布已達到去掉status
bar的效果,所以我們需要在ScrimInsetsFrameLayout 下設置 fitsSystemWindows
為true。當然你也可以不使用這個類,而改用 layout_marginTop 屬性來達到效果。
insetForeground 這個屬性是ScrimInsetsFrameLayout自帶的,表示插入區域的前景色,我們設置為帶透明的黑色#4000。別忘了使用這個屬性需要添加如下代碼到attrs.xml里:
values/attrs.xml
<declare-styleable name="ScrimInsetsView">
<attr name="insetForeground" format="reference|color" />
</declare-styleable>


自此,我們已經實現了將DrawerLayout抽屜的那一部分顯示在 Toolbar 和systembar(為了和下面的status
bar區分,我們稱為system bar)之間了,可是system bar的顏色被我們設置了透明,所以我們接下來要改變status
bar的顏色。
改變Status bar的顏色
你可能已經注意到剛才的布局裡面 DrawerLayout 的 fitsSystemWindows 屬性設置了為true,這是因為我們要在代碼裡面使用了 DrawerLayout 設置status bar顏色的方法:
// 在這里我們獲取了主題暗色,並設置了status bar的顏色
TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValue, true);
int color = typedValue.data;
// 注意setStatusBarBackgroundColor方法需要你將fitsSystemWindows設置為true才會生效
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.my_drawer_layout);
drawerLayout.setStatusBarBackgroundColor(color);

使用ToolBar來代替ActionBar

在代碼裡面這樣設置:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

2. Android中menu菜單中的圖片是怎麼加進去的

給這個圖片按鈕添加一個事件, button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(當前Activity.this, 下一個Activity.class);
startActivity(intent);
當前Activity.finish();//關閉當前Activity
}
});
與普通按鈕沒有什麼區別,一個就是有圖片的,一個沒有嘛,對它做事件都 一樣,只不過顯示效果不一樣。

3. Android ToolBar上的menu圖標怎麼在點擊之後更換

對於點擊就能改變狀態的 一般都是在drawable中自定義一個xml文件使用

<selector>
<item android:state_pressed="false">
//...
</item>
<item android:state_pressed="true>
//...
</item>
</selector>

4. android toolbar 左右各有多個按鈕

Android 3.0 Android 推了 ActionBar 這個控制項,而到了2013 年 Google 開始大力地推動所謂的 android style,想要逐漸改善過去 android 紛亂的界面設計,希望讓終端使用者盡可能在 android 手機有個一致的操作體驗。ActionBar 過去最多人使用的兩大套件就是 ActionBarSherlock 以及官方提供在 support library v 7 里的 AppCompat。

閱讀全文

與androidtoolbar菜單相關的資料

熱點內容
什麼app可以查到裝修 瀏覽:652
什麼魚的按摩app 瀏覽:499
雲電腦的伺服器網站 瀏覽:437
木工專用空氣壓縮機 瀏覽:179
synfloodlinux 瀏覽:85
linux卸載openssl 瀏覽:100
python爬蟲網址要求 瀏覽:966
什麼是金稅盤伺服器 瀏覽:437
phpsocket開發 瀏覽:509
caj文檔轉pdf 瀏覽:553
eclipsemaven命令配置 瀏覽:337
雅安視監控app叫什麼名字 瀏覽:731
東方財富app籌碼藍色和紅色是什麼 瀏覽:566
pr安裝文件夾圖標變白 瀏覽:179
如何用伺服器建設網站 瀏覽:349
定時鬧鍾單片機課程設計 瀏覽:537
腰椎壓縮性骨折症狀 瀏覽:466
絕地求生全軍出擊的伺服器什麼時候開 瀏覽:493
怎麼入侵游戲伺服器篡改數據 瀏覽:736
線性壓縮機原理 瀏覽:543