Я хочу отобразить две иконки и вид поиска на панели действий моего приложения.Я использую поддержку Toolbar
и тему NoActionBar
.Я пытаюсь поместить один значок с левой стороны, а другой - с правой стороны, а затем поставить SearchView
между ними, занимая все оставшееся пространство между ними.
Пользовательские настройки, примененные к SearchView
:
app:iconifiedByDefault="false"
(так что представление расширяется по умолчанию) app:searchIcon="@drawable/search_action_bar_icon"
(значок поиска)
Что я уже пробовал:
1.Стилизация не применяется:
В этом случае поисковое представление недостаточно растягивается, поскольку оно по умолчанию установило максимальную ширину.
2.Максимальная ширина увеличилась
Затем я увеличил максимальную ширину до очень высокого значения (10000dp), чтобы она могла свободно расширяться.Если для ширины установлено значение match_parent
или wrap_content
, окно поиска заняло все оставшееся пространство справа, поэтому вторая иконка ушла за пределы экрана.
3.Используя layout_weigth
Используя инспектор макета, я обнаружил, что группа представлений, содержащая элементы меню, - это ActionMenuView
, суперклассом которого является LinearLayoutCompat
.Предлагаемое решение для достижения желаемого результата в LinearLayout - установить ширину среднего потомка на 0dp
и его layout_weight
на 1
, в то время как другие дочерние элементы сохраняют фиксированную ширину.Однако ширина SearchView
составляет всего 0dp, что, возможно, означает, что ширина ActionMenuView
установлена на wrap_content
- честно говоря, я не уверен в этом.
Итак, что для этого нужно сделать: