使用相对布局时,ActionBar不显示标题。 当我不使用RelativeLayout时,项目不对齐。 请不要告诉我使用菜单项作为解决方案。它必须是定制的。
以下是我如何设置它:
ActionBar bar = getSupportActionBar();
bar.setDisplayOptions(
ActionBar.DISPLAY_HOME_AS_UP |
ActionBar.DISPLAY_SHOW_CUSTOM |
ActionBar.DISPLAY_SHOW_HOME |
ActionBar.DISPLAY_SHOW_TITLE |
ActionBar.DISPLAY_USE_LOGO);
bar.setTitle(title);
bar.setCustomView(actionBar);
this.setTitle(title);
这是对齐好,但标题不显示
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true" >
<ImageButton
android:id="@+id/acion_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_add"
style="?attr/actionButtonStyle" />
<ImageButton
android:id="@+id/action_prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_prev"
style="?attr/actionButtonStyle" />
<ImageButton
android:id="@+id/action_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_next"
style="?attr/actionButtonStyle" />
</LinearLayout>
</RelativeLayout>
此处显示标题显示的布局,但项目左对齐
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right">
<ImageButton
android:id="@+id/acion_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_add"
style="?attr/actionButtonStyle" />
<ImageButton
android:id="@+id/action_prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_prev"
style="?attr/actionButtonStyle" />
<ImageButton
android:id="@+id/action_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_next"
style="?attr/actionButtonStyle" />
</LinearLayout>
答案 0 :(得分:12)
我遇到了同样的问题,发现了这个链接:https://groups.google.com/forum/?fromgroups=#!topic/actionbarsherlock/He6gst4nvR0
这对我有用:
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
...
</LinearLayout>
代码:
import com.actionbarsherlock.app.ActionBar.LayoutParams;
...
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_VERTICAL);
getSupportActionBar().setCustomView(segmentView, lp);
答案 1 :(得分:0)
通过将带有titleTextStyle的TextView添加到布局中,可以解决此问题。 如果你们中有人有更好的答案,我期待着看到它。
我的解决方法:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/player_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/buttons_holder"
android:ellipsize="end"
style="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"/>
<LinearLayout
android:id="@+id/buttons_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true" >
<ImageButton
android:id="@+id/acion_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_add"
style="?attr/actionButtonStyle" />
<ImageButton
android:id="@+id/action_prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_prev"
style="?attr/actionButtonStyle" />
<ImageButton
android:id="@+id/action_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_label_next"
style="?attr/actionButtonStyle" />
</LinearLayout>
</RelativeLayout>