Android ABS中心标题带主页按钮

时间:2013-01-28 12:31:03

标签: android android-actionbar actionbarsherlock

我设法使用自定义视图将ABS的标题居中,但主页按钮消失了。怎么解决这个问题?唯一的方法是将此主页按钮放在自定义视图中吗? (要清楚:主页按钮应位于左侧而不是中间位置)

自定义视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background="@android:color/transparent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"/>

</LinearLayout>

活动代码:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.widget_actionbar_title);
getSupportActionBar().setHomeButtonEnabled(true);

4 个答案:

答案 0 :(得分:4)

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    View customView = LayoutInflater.from(this).inflate(
            R.layout.app_icon, null);
    ActionBar.LayoutParams params = new ActionBar.LayoutParams(
            ActionBar.LayoutParams.MATCH_PARENT,
            ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER);

    getSupportActionBar().setCustomView(customView, params);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(getResources().getDrawable(R.drawable.back_button));

答案 1 :(得分:1)

添加:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM  | ActionBar.DISPLAY_SHOW_HOME);

答案 2 :(得分:1)

解决方案非常简单)
更改布局

android:layout_width="match_parent"

就此:

android:layout_width="wrap_content"

它会有所帮助,因为你的初始布局占据了所有可见的位置而且没有“家”的地方

答案 3 :(得分:0)

我必须添加此代码才能使其正常工作:

getSupportActionBar().setDisplayShowHomeEnabled(true);