【问题标题】:Edit Text won't inflate in menu编辑文本不会在菜单中膨胀
【发布时间】:2017-09-08 22:02:02
【问题描述】:

我的头发因此变白了,所以我希望你们能有所启发。

因此,问题在于 EditText 没有膨胀到菜单中,尽管之前和之后的其他项目都正确膨胀了。

java代码:

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main_notes_optionsmenu, menu);
            title_textbox = (EditText)menu.findItem(R.id.title_textbox);
            return true;
        }

title_textbox 保持为空。使用逐步调试器,我看到充气后,菜单有以下几项:

https://gyazo.com/8a76c0bd702568f4c46a8ef2af1a03c5(图片链接,因为我没有 10 个代表来嵌入它。)

在返回和接受之间,应该有activity_main_notes_optionsmenu.xml中定义的edittext:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/menubar">

    <item
        android:id="@+id/back_button"
        android:icon="@drawable/ic_back_button"
        android:orderInCategory="1"
        android:title="Back"
        app:showAsAction="always"/>

    <EditText
        android:id="@+id/title_textbox"
        android:inputType="text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orderInCategory="2"
        app:showAsAction="always"/>
    <item
        android:id="@+id/accept"
        android:icon="@drawable/ic_accept"
        android:orderInCategory="3"
        android:title="Accept"
        app:showAsAction="always"/>

    <group android:id="@+id/group1" android:checkableBehavior="none" android:orderInCategory="4">
        <item
            android:id="@+id/renamenote"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="Rename Note" />
        <item
            android:id="@+id/deletenote"
            android:icon="@drawable/ic_menu_manage"
            android:title="Delete Note" />
    </group>
</menu>

我能找到的唯一功能性解决方法是将 EditText 添加到 android.support.v7.widget.Toolbar 中,但是在这种情况下 orderInCategory 将被忽略,并且 Edittext 将始终是最左边的项目,紧随其后通过菜单中的项目。期望的行为是,从左到右,我们有返回按钮、EditText、Accept 按钮,然后是溢出窗口中的最后 2 个。

涉及此主题的其他问题是:

Add EditText to Toolbar - 如上所述的可用解决方法,但由于定位限制,它不是一个合适的解决方案。

menu.findItem(R.id.*) is null- Android - 是在充气之前尝试使用对象的简单案例,而不是我的案例。

Android : Display an EditText in a menu - 好像说不可能?尽管根据许多其他来源,这是可能的。

Edit Text won't inflate in the action bar - 看起来和我的问题一样,但是在接受的答案中,第一部分是关于强制转换的,但我的问题是它一开始就不存在,关于自定义前缀的部分我试过了,但是没用。

【问题讨论】:

    标签: java android android-menu


    【解决方案1】:

    所以,问题在于 EditText 没有膨胀到菜单中,尽管之前和之后的其他项目都正确膨胀了。

    由于这从未有效,这不足为奇。

    我能找到的唯一功能性解决方法是将 EditText 添加到 android.support.v7.widget.Toolbar 中

    我有点惊讶,它的效果和你说的一样好。我本来希望Toolbar 也会忽略随机的非菜单 XML 元素。

    欢迎您使用an ActionProvideran action view

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 2011-08-17
      相关资源
      最近更新 更多