2015-12-25 61 views
1

我在我的代碼中有一個PopupMenu視圖,我希望EditText視圖是其中的一個選項,因此用戶可以從選擇現有文件的相同菜單中創建一個新文件。根據這篇文章:Android : Display an EditText in a menu 無法使用EditText視圖作爲PopupMenu項目。Android:如何在PopupMenu的底部創建EditText字段?

我的問題是,是否有一種解決方法,無法將EditText聲明爲菜單項?也許,創建一個ListView並聲明Popupmenu和EditText視圖爲兒童?

下面是代碼我嘗試過,但生成,如預測,沒有可見的EditText字段的Popupmenu。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"> 

    <item android:id="@+id/new_track" 
     android:title="+ create new track"/> 

    <EditText 
     android:id="@+id/search" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/search_hint" 
     android:inputType="textCapWords" 
     android:imeOptions="actionSend" /> 

</menu> 

我建議將看起來像這樣的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<ListView 

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"> 

    <item android:id="@+id/new_track" 
     android:title="+ create new track"/> 
</menu> 
<EditText 
     android:id="@+id/search" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/search_hint" 
     android:inputType="textCapWords" 
     android:imeOptions="actionSend" /> 

</ListView> 

什麼是完成這一任務的最好方法是什麼?

回答

0

我認爲你需要創建RelativeLayout然後設置每個元素需要排隊的位置。

 <?xml version="1.0" encoding="utf-8"?> 
     <menu xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content"> 

     <item android:id="@+id/new_track" 
       android:title="+ create new track"/> 

    <RelativeLayout> 
    <EditText 
     android:id="@+id/search" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/search_hint" 
     android:inputType="textCapWords" 
     android:imeOptions="actionSend" 
     android:layout_alignParentBottom="true"/> //this line put edittext at bottom 
    </RelativeLayout> 
</menu> 

編輯:這個具體的問題,我只能說的許多搜索後:不,你不能這樣做。您只能創建一個菜單item,這將調用特定的片段,或者它會將您的工具欄更改爲SearchView(如隱藏TextView,顯示EditText和Button)。

對於第一種選擇看看:Search item on action bar android

對於第二個選項:http://blog.rhesoft.com/2015/03/30/tutorial-android-actionbar-with-material-design-and-search-field/

+0

我試過,但該部件的EditText仍然沒有顯示出來 – Cody

+0

我已經編輯後 – piotrek1543

+0

我的應用程序在運行全屏模式,所以沒有應用程序欄。對於我的問題,我使用了一種解決方法,在彈出式菜單中單擊選項創建新文件時,會更改用戶可以命名文件的單獨EditText字段的可見性。 – Cody

相關問題