是否可以将 AppCompat 21 中的 SearchView 与工具栏左对齐?
Is it possible to left align SearchView in AppCompat 21 with toolbar?
在使用新的 material 主题和 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;
}
我宁愿在布局中定义您的 SearchView
然后调用
View v = findViewById(R.id.your_search_view);
getSupportActionBar().setCustomView(v);
这样它已经在左侧对齐,如果没有,您可以设置它的 LayoutParams
。
如果您将 Toolbar
与 AppCompat 一起使用,事情会更容易,因为它充当 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>
我用了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>
在使用新的 material 主题和 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;
}
我宁愿在布局中定义您的 SearchView
然后调用
View v = findViewById(R.id.your_search_view);
getSupportActionBar().setCustomView(v);
这样它已经在左侧对齐,如果没有,您可以设置它的 LayoutParams
。
如果您将 Toolbar
与 AppCompat 一起使用,事情会更容易,因为它充当 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>
我用了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>