ActionBar
検索ビューが展開されたときに、単一のアクションアイテムが表示された折りたたみ可能な検索ビューで構築するにはどうすればよいですか?より説明的にするために、これは私が必要とするものです:
他のメニュー項目があり、android:uiOptions="splitActionBarWhenNarrow"
で定義されていることに注意してくださいAndroidManifest.xml
。
カスタム検索アイテムのレイアウトを設定しようとしました:
menu.xml
<item
android:id="@+id/menu_search"
android:actionLayout="@layout/actionbar_search"
android:icon="@drawable/action_search"
android:showAsAction="always|collapseActionView"
android:title="@string/search" />
actionbar_search.xml
<?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="right"
android:orientation="horizontal" >
<com.actionbarsherlock.widget.SearchView
android:id="@+id/search_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:iconifiedByDefault="false"
android:queryHint="@string/search_hint" />
<ImageButton
android:id="@+id/add_item"
android:layout_width="wrap_content"
android:layout_height="match_parent"
style="@style/Widget.Sherlock.ActionButton"
android:src="@drawable/content_new"/>
</LinearLayout>
ただし、デフォルトでは、検索ビューは使用可能なすべての幅を取り、ボタンは表示されません。SearchView
アプリのアイコンとメニュー項目の間の利用可能なすべてのスペースを強制的に埋める方法がわかりません。私が見つけたのはandroid:maxWidth
プロパティだけですが、これはハードコーディングされたディメンションのみを許可し、より柔軟なソリューションを探しています。運が悪かったので試しRelativeLayout
てみました。android:layout_toRightOf="@id/search_view"