我想在使用新材料主题和AppCompat 21时将SearchView放在平板电脑上。这可能或者我必须将自己的自定义布局添加到工具栏吗?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
mnuSearch = menu.findItem(R.id.menu_search);
android.support.v7.widget.SearchView searchView = (SearchView) MenuItemCompat.getActionView(mnuSearch);
searchView.setGravity(Gravity.LEFT);
searchView.setIconifiedByDefault(false);
searchView.setQueryHint(getString(R.string.search));
searchView.requestFocus();
return true;
}
答案 0 :(得分:3)
我宁愿在布局中定义您的SearchView
,然后调用
View v = findViewById(R.id.your_search_view);
getSupportActionBar().setCustomView(v);
这种方式已经在左侧对齐,如果没有,则可以设置其LayoutParams
。
如果你在AppCompat中使用Toolbar
,事情会更容易,因为它充当ViewGroup
。
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:abc="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent">
<your.SearchView />
// here you have control over layout_gravity
</android.support.v7.widget.Toolbar>
答案 1 :(得分:0)
我使用了searchview
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay" >
<android.support.v7.widget.SearchView
android:id="@+id/search"
android:gravity="start"
app:searchIcon="@mipmap/icon_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:gravity="end"
android:textSize="22dp"
android:textColor="@color/white"
android:id="@+id/title"
android:text="title"
android:layout_marginRight="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>