我有導航抽屜圖標以及操作欄上的應用程序圖標。我需要針對這兩種方式採取不同的操作(導航抽屜圖標必須打開導航抽屜,應用圖標將啓動應用的主屏幕)。現在它看起來像下面的圖片,對於應用圖標和導航抽屜圖標都有相同的操作。如何在操作欄中爲導航抽屜圖標和應用程序圖標執行不同的操作?
非常感謝您的幫助!
我有導航抽屜圖標以及操作欄上的應用程序圖標。我需要針對這兩種方式採取不同的操作(導航抽屜圖標必須打開導航抽屜,應用圖標將啓動應用的主屏幕)。現在它看起來像下面的圖片,對於應用圖標和導航抽屜圖標都有相同的操作。如何在操作欄中爲導航抽屜圖標和應用程序圖標執行不同的操作?
非常感謝您的幫助!
不知道(順便說一句,後退按鈕應該從活動返回你回到主屏幕)的是它有多好,卻得到了一個解決方案終於來了!
可以使用操作欄的自定義佈局完成此操作。示例代碼在這裏。
//mActionbarView is the custom view to be used for action bar
View mActionBarView = getLayoutInflater().inflate(
R.layout.custom_action_bar, null);
Button navDrawer = (Button) mActionBarView.findViewById(R.id.navDrawer);
Button appIcon = (Button) mActionBarView.findViewById(R.id.appIcon);
navDrawer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(BaseActivty.this, "Drawer", Toast.LENGTH_LONG)
.show();
mDrawerLayout.openDrawer(Gravity.LEFT);
}
});
appIcon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(BaseActivty.this, "Home", Toast.LENGTH_LONG)
.show();
}
});
getActionBar().setCustomView(mActionBarView);
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
custom_action_bar.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/navDrawer"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/ic_drawer"
android:padding="5dp" />
<Button
android:id="@+id/appIcon"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/ic_launcher" />
</LinearLayout>
你叫什麼NavigationDrawer圖標並不是真正的圖標,它是附加指標(其放在ActionBarDrawerToggle)表示,如果Navidation抽屜被打開/關閉,所以只有一個點擊時調用clickListener該地區。
即使可能,由於圖標很小且彼此接近,用戶會感到非常困惑。
考慮在這種情況下,重新設計你的導航流