相关疑难解决方法(0)

如何在ActionBar中显示自定义视图?

我想在操作栏中显示自定义搜索(我正在使用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

请帮忙.

android actionbarsherlock android-actionbar

92
推荐指数
4
解决办法
10万
查看次数

用户定义的ActionBar操作视图:获得正确的宽度

冰淇淋三明治:

我想通过标准的Action View机制向ActionBar 添加一个AutoCompleteTextView(因为SearchView在ICS之前不可用,我也在使用ActionBarSherlock):

<item android:id="@+id/menu_search" android:actionViewClass="com.example.AutoCompleteActionView" android:showAsAction="ifRoom" android:title="@string/address"></item>
<item android:id="@+id/menu_close" android:icon="@drawable/ic_menu_close_clear_cancel" android:showAsAction="always"></item>
<item android:id="@+id/menu_ok" android:icon="@drawable/ic_menu_ok" android:showAsAction="always"></item>
Run Code Online (Sandbox Code Playgroud)

这可行,但默认情况下它不会占用ActionBar中的可用空间,我想要这样做.

查看了SearchView源代码,看了它如何覆盖onMeasure,并为我自己的类做了同样的事情,我从AutoCompleteTextView派生.当我这样做时,AutoCompleteTextView消耗所有空间,没有空间用于我想要显示在其右侧的两个菜单项.

MeasureSpec.getMode()MeasureSpec.AT_MOST时,看起来MeasureSpec.getSize()返回的宽度没有考虑其他两个菜单项.

有人做过类似的事吗?有什么建议?

谢谢,达米安

android android-actionbar

17
推荐指数
2
解决办法
2万
查看次数

SherlockActionBar:如何针对actionBar调整CustomView

题:

我怎么能取回头衔?


这是截图(缺少标题):

在此输入图像描述

操作栏设置:

 ActionBar actionBar = getSupportActionBar();
 actionBar.setTitle("My Title");
 actionBar.setIcon(drawable.dropdown_user);

 View mLogoView = LayoutInflater.from(this).inflate(R.layout.mLogoView, null);
 actionBar.setCustomView(mLogoView);

 actionBar.setDisplayShowCustomEnabled(true);
 actionBar.setDisplayShowTitleEnabled(true);
 actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

mLogoView.xml:

<?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="match_parent" >
    <ImageView
        android:id="@+id/img_merchant"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"
        android:src="@drawable/infoflex">
</ImageView>
</RelativeLayout >
Run Code Online (Sandbox Code Playgroud)

android android-custom-view actionbarsherlock android-actionbar

14
推荐指数
1
解决办法
2万
查看次数