Подтвердить что ты не робот

Добавить EditText на панель инструментов

Мои Toolbar и EditText выглядят следующим образом:

enter image description here

Я попытался добавить его как ActionView, но получил этот результат:

enter image description here

В основном это просто добавило мои слова "Tap Below" в качестве названия без TextView

Вот что я сделал:

menu.xml

<menu>
    ... 
    ...
    <item
        android:id="@+id/edit_text_menu"
        android:orderInCategory="300"
        android:title="Tap Below"
        android:actionLayout="@layout/edit_text_layout"
        app:showAsAction="ifRoom|collapseActionView"
        />
</menu>

edit_text_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/myEditText"
    android:background="#000000">

</EditText>

Я подумал, делая это, добавляю макет EditText к Toolbar... Кто-нибудь может помочь?

В качестве альтернативы, есть трюк, где я могу наложить EditText на Toolbar?

Я попробовал добавить <item name="windowActionModeOverlay">true</item>, но ничего не сделал.

4b9b3361

Ответ 1

Просто добавьте EditText в XML для вашего ToolBar. Это, наверное, самый простой способ.

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
      <EditText
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:id="@+id/myEditText"
         android:background="#000000" />
</android.support.v7.widget.Toolbar>

Ответ 2

  1. Добавьте EditText на панель инструментов xml.

  2. Добавьте Toolbar в xml-макет вашей Activity's вверху.

  3. Установите панель инструментов как ActionBar:

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
    

Это сделает панель инструментов "панелью ActionBar с EditText внутри.

Ответ 3

Использовать код belove

       <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        app:titleTextColor="@color/colorAccent"
        app:theme="@style/ToolbarColoredBackArrow"
        app:subtitleTextColor="@color/colorAccent"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay">

        <TextView
            android:textColor="@color/colorAccent"
            android:text="June 14"
            android:textAllCaps="true"
            android:layout_gravity="right"
            android:layout_marginRight="11dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_daily" />

    </android.support.v7.widget.Toolbar>