我可以在actionbar
中添加自定义视图。我的应用程序从版本2.3支持,因此我使用了ActionbarActivity
。现在我的查询是从actionbar
删除应用程序图标,只有主页图标,即背面图像。
我尝试了很多搜索时找到的选项。但它不适用于自定义视图。
ActionBar actionBar = getSupportActionBar();
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, Gravity.RIGHT
| Gravity.CENTER_VERTICAL);
View customNav = LayoutInflater.from(this).inflate(
R.layout.custom_action_view, null); // layout which contains
actionBar.setCustomView(customNav, lp);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setBackgroundDrawable(new ColorDrawable(Color
.parseColor("#a40404")));
帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
向上按钮与主页图标相关联。这就是为什么它被称为“home up as up” setDisplayHomeAsUpEnabled(true)。
所以你不能用禁用的“home”图标显示箭头。
但是您可以在自定义视图中创建一个类似的视图。
例如:
<LinearLayout
android:id="@android:id/home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:background="?attr/actionBarItemBackground"
android:paddingRight="5dp">
<!-- this will show tha up arrow -->
<ImageView
android:id="@+id/up"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="?attr/homeAsUpIndicator"/>
<!-- place here any View that will be clickable along with "up" arrow (in this example, it's an icon) -->
<ImageView
android:id="@+id/home_icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/action_bar_icon_vertical_padding"
android:layout_marginBottom="@dimen/action_bar_icon_vertical_padding"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/app_icon"/>
</LinearLayout>
其中
android:src="?attr/homeAsUpIndicator"
将根据您的主题设置向上箭头。
android:background="?attr/actionBarItemBackground"
将为按下状态设置蓝色选择背景
现在将OnClickListener设置为带箭头的布局
View customNav = LayoutInflater.from(this).inflate(
R.layout.custom_action_view, null);
customNav.findViewById(android.R.id.home).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick() {
// up button clicked
}
});
actionBar.setCustomView(customNav, lp);
答案 1 :(得分:-1)
删除Actonbar图标:
只需在actionBar.setDisplayUseLogoEnabled(false);
方法中添加oncreate()
这一行:
启用后退按钮:
您需要扩展 SherlockActivity 并在oncreate()
方法中插入此代码:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
使用以下代码处理后退按钮操作:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// do your action here when click on back button showing on action bar
onBackPressed();
}
}