我在操作栏上有导航抽屉图标和应用程序图标。我需要对两者都有不同的操作(导航抽屉图标必须打开导航抽屉,应用程序图标将启动应用程序的主屏幕)。现在它看起来像下面的图片,并对应用程序图标和导航抽屉图标具有相同的操作。
非常感谢您的帮助!
答案 0 :(得分:2)
你所谓的NavigationDrawer图标实际上并不是一个图标,它是附加指示器(放在ActionBarDrawerToggle中),显示导航抽屉是否被打开/关闭,所以在点击该区域时只有一个clickListener被调用。
即使可能,对于用户来说也会非常混乱,因为图标很小并且彼此接近。
考虑在这种情况下重新设计导航流程(顺便说一句,后退按钮应该从该活动返回主屏幕)
答案 1 :(得分:0)
不确定它有多好,但最终得到了解决方案!
可以使用操作栏的自定义布局来完成。示例代码在这里。
//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>