Android Popup Menu fill parent

后端 未结 2 559

I try set my popup menu in way to fill hole item on grid. Currently it look like on attached first picture and the next one is effect which I would like to have.

<
相关标签:
2条回答
  • 2021-01-21 13:40

    Demo App for your requirment by using PopupWindow. Preview

    You can add list in it or customize it according to your needs. MainActivity

    public class MainActivity extends Activity {
    
        boolean isClicked = true;
        PopupWindow popUpWindow;
        RelativeLayout relative;
        ImageView btnClickHere;
    
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            relative = (RelativeLayout) findViewById(R.id.relative);
            popUpWindow = new PopupWindow(this);
            popUpWindow.setContentView(getLayoutInflater().inflate(R.layout.popup_design, null));
            popUpWindow.getContentView().findViewById(R.id.textViewa).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "PopItemClicked", Toast.LENGTH_LONG).show();
                }
            });
    
            btnClickHere = (ImageView) findViewById(R.id.imageView);
            btnClickHere.setOnClickListener(new View.OnClickListener() {
    
                public void onClick(View v) {
                    if (isClicked) {
                        isClicked = false;
                        popUpWindow.setHeight(relative.getHeight());
                        popUpWindow.setWidth(relative.getWidth());
                        popUpWindow.showAsDropDown(relative, 0, -relative.getHeight());
                    } else {
                        isClicked = true;
                        popUpWindow.dismiss();
                    }
                }
            });
        }
    }
    

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.sohailzahid.testapp.MainActivity">
    
        <RelativeLayout
            android:id="@+id/relative"
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:background="@color/colorAccent"
            tools:layout_editor_absoluteX="150dp"
            tools:layout_editor_absoluteY="150dp">
    
            <ImageView
                android:id="@+id/imageView"
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:src="@android:drawable/arrow_down_float" />
        </RelativeLayout>
    
    </RelativeLayout>
    

    popup_design.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F93567">
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/textViewa"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="Block"
                android:textColor="#ffffff"
                android:textSize="20dp" />
    
            <TextView
                android:id="@+id/textVsiewa"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="Add to friends"
                android:textColor="#ffffff"
                android:textSize="20dp" />
    
            <TextView
                android:id="@+id/textViesw"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="Remove"
                android:textColor="#ffffff"
                android:textSize="20dp" />
        </LinearLayout>
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_margin="10dp"
            android:src="@android:drawable/arrow_down_float" />
    
    </RelativeLayout>
    
    0 讨论(0)
  • 2021-01-21 13:40

    Try this

       popup.getWindow().getAttributes().height = ViewGroup.LayoutParams.MATCH_PARENT;
       popup.getWindow().getAttributes().width = ViewGroup.LayoutParams.MATCH_PARENT;
    
    0 讨论(0)
提交回复
热议问题