Ответ 1
Насколько я могу сказать, вxml menu
не может быть достигнуто с помощью Action Items
в xml menu
. Однако это может быть реализовано путем установки пользовательского макета на ActionBar
. Основной пример:
An 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.