我已经能够使用以下建议自定义操作栏的背景,徽标图像和文本颜色:
Android:如何将ActionBar"Home"图标更改为应用程序图标以外的其他内容?
ActionBar文本颜色
ActionBar背景图片
我要自定义的最后一块是后退按钮图像.它默认是灰色的,我希望它是白色的.更改颜色,指定可绘制或简单地使其透明(并将V形符号添加到我的自定义徽标图像)将起作用.我该怎么做?
我想在操作栏中显示自定义搜索(我正在使用ActionBarSherlock).
我明白了:

但我想让自定义布局(edittext字段)占用整个可用宽度.
我按照这里的建议实现了自定义布局.
有我的自定义布局search.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="?attr/actionButtonStyle"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:focusable="true" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|fill_horizontal" >
<EditText
android:id="@+id/search_query"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:background="@drawable/bg_search_edit_text"
android:imeOptions="actionSearch"
android:inputType="text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:src="@drawable/ic_search_arrow" />
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
并在MyActivity:
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setIcon(R.drawable.ic_action_search);
LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.search, null);
actionBar.setCustomView(v);
Run Code Online (Sandbox Code Playgroud)
如何使自定义布局占用所有可用宽度actionBar?
请帮忙.
我需要在Actionbar中为"Home"活动设置一个自定义徽标(使用ImageView).我正在为这个项目使用ABS.这非常类似于在SO上发布的另一个问题(ActionBar徽标居中和侧面的Action项目),但我不确定ImageView或搜索菜单是否有所作为,因为我没有得到我正在寻找的结果(中心图像),或者如果我错了.基本上,我在左侧设置了一个Icon,在中心插入自定义视图,右侧有一个搜索图标(OptionsMenu).图像确实显示在图标的右侧,但它仍然保持居中.任何关于如何在操作栏中居中ImageView的指针都将非常感激.
Home.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
LayoutInflater inflater = (LayoutInflater) getSupportActionBar().getThemedContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
final View customActionBarView = inflater.inflate(
R.layout.actionbar_custom_view_home, null);
/* Show the custom action bar view and hide the normal Home icon and title */
final ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setIcon(R.drawable.ic_ab_som);
actionBar.setCustomView(customActionBarView);
actionBar.setDisplayShowCustomEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.search, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
RES /布局/ actionbar_custom_view_home.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center"> …Run Code Online (Sandbox Code Playgroud) 我可以将ActionBar中的主页按钮设置在右侧吗?(android.R.id.home)
我想更改主页按钮的位置,因为语言使用从右到左键入.
可能吗?如果是,请告诉我如何做到这一点?
如果不是,我如何在右侧设置ActionBarDrawerToggle?
我在哪里可以找到Android"向上"按钮,以便我可以自定义它?或者它的文件名是什么,以便我可以快速搜索到在sdk目录中找到它?
我想在Action Bar的中心显示徽标.这是我的自定义布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ActionBarWrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
android:layout_centerInParent="true"
android:padding="8dp"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在onCreate()我用它作为:
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.custom_logo);
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#2A2A2A")));
Run Code Online (Sandbox Code Playgroud)
问题是它在正常的碎片和活动中显示正常,但在与导航抽屉一起使用时向右移动一点.这是图像:
我究竟做错了什么?谢谢.
android ×6