web-dev-qa-db-fra.com

Ajouter EditText à la barre d'outils

Ma Toolbar et EditText ressemblent à ceci:

enter image description here

J'ai essayé de l'ajouter en tant que ActionView mais j'ai obtenu le résultat suivant:

enter image description here

En gros, il vient d’ajouter mes mots 'Tap Below' comme titre sans le TextView 

Voici ce que j'ai fait:

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>

En faisant cela, j'ai pensé ajouter ma mise en page EditText à la Toolbar... Quelqu'un peut-il aider s'il vous plaît?

Sinon, y a-t-il un truc où je peux superposer la EditText sur la Toolbar?

J'ai essayé d'ajouter <item name="windowActionModeOverlay">true</item> mais cela n'a rien fait.

16
user2456977

Ajoutez simplement la EditText au XML pour votre ToolBar. C'est probablement le moyen le plus simple.

<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>
31
Jared Burrows
  1. Ajoutez le EditText au xml de la barre d’outils.

  2. Ajoutez la Toolbar à votre mise en page Activity's xml, en haut. 

  3. Définissez la barre d'outils en tant que ActionBar:

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

Cela fera que la barre d'outils "deviendra" la ActionBar avec EditText à l'intérieur.

6
Gunnar Karlsson

Utilisez le code ci-dessous

       <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>
0