Intereting Posts
Предотвращение декомпиляции андроида apk Android – не может экспортировать apk с помощью Proguard при использовании Joda Time Учебник для Spinning Wheel Android? Как отфильтровать только соответствующие мультимедийные файлы в Android? GCM и специальные символы Изображение, не загружаемое с URL-адреса в пользовательскую инфо-окно с использованием библиотеки загрузки изображений Picasso в android GetDownTime () и getEventTime () Определите причину для Android Пауза Не удается создать подписанный APK в Android Studio, поскольку отсутствует proguard-rules.txt Почему я не могу импортировать сервисы google play в eclipse? Обновление плагинов Android 2.2 от Cordova Local Notification Событие TYPE_MAGNETIC_FIELD не срабатывает на моем Galaxy Nexus ICS 4.0.2 Невозможно деактивировать приложение Android Staged Rollout из зоны производства Play Store Как протестировать обновление базы данных sqlite перед загрузкой новой версии моего приложения в игровой магазин в Android ContentProvider insert () всегда работает в потоке пользовательского интерфейса?

Центр поиска в панели действий

Как я могу центрировать ActionView (в частности, SearchView) внутри панели действий?

Как видно из приложения Google Книги:

Приложение Google Книги SearchView http://i46.tinypic.com/2z909is.png

Моя текущая настройка макета ( search_layout.xml ) :

 <?xml version="1.0" encoding="utf-8"?> <SearchView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:queryHint="@string/search_hint" /> 

Файл XML My Action Bar ( menu.xml ) :

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:icon="@+android:drawable/ic_menu_search" android:title="@string/search" android:showAsAction="always|collapseActionView" android:id="@+id/searchMenuItem" android:actionLayout="@layout/search_layout" /> </menu> 

Есть ли способ имитировать поведение SearchView в книгах?

Насколько я могу судить, View центре ActionBar не может быть достигнут с помощью Action Items в xml menu . Однако это может быть реализовано путем установки пользовательского макета в ActionBar . Основной пример:

Activity :

 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getActionBar(); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setDisplayShowHomeEnabled(true); actionBar.setCustomView(R.layout.actionbar_layout); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 

Где actionbar_layout :

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <SearchView android:id="@+id/mySearchView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:iconifiedByDefault="false" /> </RelativeLayout> 

Создает это на 7-дюймовой планшете:

Введите описание изображения здесь

Обратите внимание, что атрибут iconifiedByDefault установлен на false в SearchView который заставляет его отображаться расширенным, а не только как значок. Это может потребовать, чтобы вы скрывали программную клавиатуру программным способом, или она будет запущена при запуске Activity.

Посмотрите здесь . Вы можете просто использовать атрибут android: actionViewClass = "android.widget.SearchView", и это должно работать нормально (помните, что вы можете получить ссылку на searchView в Java и изменить подсказку там, если это то, что вы хотите ).