Ответ 1
Вы должны использовать меньшую версию текста редактирования. Экстразивные размеры drawables меньше, чем текстовые чертежи по умолчанию.
Ознакомьтесь с используемыми здесь чертежами
Я следил за отличным ответом на этот question, чтобы виджет SearchView
в моей ActionBar соответствовал настраиваемой теме. Он отлично подходит для портретного режима, но в ландшафте ОС будет уменьшать высоту ActionBar, чтобы максимизировать свойство экрана содержимого. Вместо установки виджета SearchView
без полей в ActionBar, как и другие элементы, он отрубается вверху:
Я вырыл папку res из источника Android, но не смог найти никаких специализированных макетов или ресурсов, которые могли бы сделать очевидным, как это исправить или даже, как Android сам справляется с установленным по умолчанию Holo SearchView
Widget в уменьшенный ActionBar.
Любые идеи оценены. спасибо.
Вы должны использовать меньшую версию текста редактирования. Экстразивные размеры drawables меньше, чем текстовые чертежи по умолчанию.
Ознакомьтесь с используемыми здесь чертежами
У меня была аналогичная проблема, и я смог ее исправить, просто изменив Gravity из EditText
:
try {
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
AutoCompleteTextView searchPlate = (AutoCompleteTextView) searchView.findViewById(searchPlateId);
//fixes the gravity (fixes text cutoff for landscape mode)
searchPlate.setGravity(Gravity.LEFT|Gravity.BOTTOM);
}
catch (Throwable t)
{
//not sure if the above code will always work (layouts change), but works well for the current API.
t.printStackTrace();
}
SearchView не легко настраивается, но я нашел работу. Мои исследования и код в основном взяты из первого найденного здесь ответа: Изменение фонового рисунка виджета searchview. После установки фона в файле XML следующим образом:
`<SearchView
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@drawable/rounded_grey_search_bar"
android:clickable="true"
android:iconifiedByDefault="false"/>`
Я добавил следующий код в свой файл Java, чтобы изменить заполнение SearchView:
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null);
searchView.findViewById(searchPlateId).setBackgroundResource(R.drawable.rounded_grey_search_bar);
int voiceSearchPlateId = searchView.getContext().getResources().getIdentifier("android:id/submit_area", null, null);
searchView.findViewById(voiceSearchPlateId).setBackgroundResource(R.drawable.rounded_grey_search_bar);
int searchTextViewId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
TextView searchTextView = (TextView) searchView.findViewById(searchTextViewId);
searchTextView.setPadding(20, 20, 20, 20);
Настройка отступов позволила мне получить текст, где я этого хотел.