将EditText添加到工具栏

use*_*977 17 android toolbar android-custom-view android-edittext

ToolbarEditText这个样子:

在此输入图像描述

我尝试添加它作为一个ActionView但我得到了这个结果:

在此输入图像描述

它基本上只是添加了我的单词'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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

我想通过这样做我将我的EditText布局添加到Toolbar...有人可以帮忙吗?

或者,有一个技巧,我可以覆盖EditTextToolbar

我尝试添加,<item name="windowActionModeOverlay">true</item>但它没有做任何事情.

Jar*_*ows 32

只需EditText为您的XML 添加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>
Run Code Online (Sandbox Code Playgroud)

  • @OmidAminiva谢谢!下次提交`edit`. (2认同)

Gun*_*son 6

  1. 将EditText添加到工具栏xml.

  2. 添加ToolbarActivity's顶部的xml布局.

  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);
    }
    
    Run Code Online (Sandbox Code Playgroud)

这将使工具栏"成为" ActionBarEditText内.