代码之家  ›  专栏  ›  技术社区  ›  Ionuț Popescu

在弹出菜单项中包含布局[重复]

  •  -1
  • Ionuț Popescu  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我尝试在我的服务中添加一个弹出菜单,以获得一些功能。我想添加一些水平图标。我试图将它们添加到布局中,然后将该布局包含到菜单项中。但什么都没有。

    <?xml version=“1.0”encoding=“utf-8”?gt;
    <menu xmlns:android=“http://schemas.android.com/apk/res/android”
    xmlns:app=“http://schemas.android.com/apk/res auto”>
    
    项目
    android:id=“@+id/菜单\u id”
    android:title=“测试”
    app:showasaaction=“始终”
    app:actionlayout=“@layout/菜单导航”/>
    
    <item android:id=“@+id/下载”
    android:title=“@string/下载”
    android:icon=“@drawable/ic_下载”
    app:showasaction=“始终带文本”/>gt;
    
    <item android:id=“@+id/设置”
    android:title=“@string/设置”
    android:icon=“@drawable/ic_设置”
    app:showasaction=“始终带文本”/>gt;
    &菜单;
    < /代码> 
    
    

    . 2答

    我尝试在我的服务中添加一个弹出菜单,以获得一些功能。我想添加一些水平图标。我试图将它们添加到布局中,然后将该布局包含到菜单项中。但什么也没有。

    <?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">
    
        <item
            android:id="@+id/menu_id"
            android:title="TEST"
            app:showAsAction="always"
            app:actionLayout="@layout/menu_navigation"/>
    
        <item android:id="@+id/downloads"
            android:title="@string/downloads"
            android:icon="@drawable/ic_download"
            app:showAsAction="always|withText"/>
    
        <item android:id="@+id/settings"
            android:title="@string/settings"
            android:icon="@drawable/ic_settings"
            app:showAsAction="always|withText" />
    </menu>
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   user10041244    6 年前

    尝试使用弹出窗口使用自定义布局,这样您就可以添加图标

     LayoutInflater layoutInflater = (LayoutInflater) 
     MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View customView = layoutInflater.inflate(R.layout.pop_window_layout,null);
    
    
        Button  but1 = (Button)customView.findViewById(R.id.popwinitem1);
        Button  but2 = (Button)customView.findViewById(R.id.popwinitem2);
        Button  but3 = (Button)customView.findViewById(R.id.popwinitem3);
    
        //instantiate popup window
        final PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    
        //display the popup window below whatever widget you want
        popupWindow.showAsDropDown(text1);
        //popupWindow.showAtLocation(holder.text1, Gravity.RIGHT, 0, 0);
    
        //close the popup window on button click
    
    
        but1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               // yourfunction();
                popupWindow.dismiss();
            }
        });
        but2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               // yourfunction();
                popupWindow.dismiss();
            }
        });
        but3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                popupWindow.dismiss();
            }
        });
    

    弹出窗口布局

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@color/colorWhite"
    android:padding="10dp">
    
    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/popwinitem1"
        android:padding="5dp"
        android:textSize="15sp"
        android:text="@string/save"
        android:textColor="@color/colorBlack"/>
    
    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/popwinitem2"
        android:text="@string/delete"
        android:textSize="15sp"
        android:padding="5dp"
        android:textColor="@color/colorBlack"/>
    
    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/popwinitem3"
        android:text="@string/cancel"
        android:padding="5dp"
        android:textSize="15sp"
        android:textColor="@color/colorBlack"/>