如何从自定义AlertDialog中删除多余的空间

时间:2019-03-27 15:27:25

标签: android android-alertdialog

我正在尝试创建自定义AlertDialog。问题是对话框中有多余的空间(图片中的白色矩形)。如何删除?

dialog 这是我的代码:

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

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="10dp"
        android:background="@drawable/round_alert_like_ui">

         <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/like_icon"
            android:layout_marginStart="10dp"
            android:layout_gravity="center"
            android:id="@+id/likeIconId"
            android:fitsSystemWindows="true"
            android:padding="5dp" />

         <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/wowButtonId"
                android:layout_marginStart="5dp"
                android:src="@drawable/love_icon"
                android:background="@drawable/round_button_for_round_menu_like_button"
                android:layout_gravity="center" />

         <ImageButton
                android:layout_width="40dp"
                android:layout_height="35dp"
                android:id="@+id/blehButtonId"
                android:layout_marginStart="5dp"
                android:src="@drawable/bleh"
                android:background="@drawable/round_button_for_round_menu_like_button"
                android:layout_gravity="center" />

         <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/dislikeButtonId"
            android:layout_marginStart="5dp"
            android:src="@drawable/dislike_icon"
            android:background="@drawable/round_button_for_round_menu_like_button"
            android:layout_gravity="center" />
    </LinearLayout>
</LinearLayout>

活动中:

final AlertDialog.Builder builder = new AlertDialog.Builder(context);
final AlertDialog alertDialog = builder.create();
View view1 = LayoutInflater.from(context).inflate(R.layout.layout_for_long_like_button_option, null);

4 个答案:

答案 0 :(得分:0)

只需将父母<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <main/>和直子layout_width的{​​{1}}更新为 LinearLayout 而不是 {{1} } 。请参见下面的更新代码:

LinearLayout

更新:

在致电match_parent之后,尝试为警报对话框设置透明背景。

wrap_content

答案 1 :(得分:0)

作为一种选择,如果您要创建自定义对话框,则可以执行以下操作:

  @Override
  public void onStart() {
    super.onStart();
    Dialog dialog = getDialog();
    if (dialog != null) {
      int width = ViewGroup.LayoutParams.WRAP_CONTENT;
      int height = ViewGroup.LayoutParams.WRAP_CONTENT;
      dialog.getWindow().setLayout(width, height);
    }
  }

答案 2 :(得分:0)

尝试此布局并自定义。无需嵌套线性布局。这会导致性能问题。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="wrap_content"
              android:layout_height="48dp"
              android:background="@color/colorPrimary"
              android:padding="4dp">

    <ImageButton
            android:id="@+id/likeIconId"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:background="@android:color/black"
            android:src="@android:drawable/ic_delete"/>

    <Space
            android:layout_width="8dp"
            android:layout_height="0dp"/>

    <ImageButton
            android:id="@+id/wowButtonId"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:background="@android:color/black"
            android:src="@android:drawable/ic_delete"/>

    <Space
            android:layout_width="8dp"
            android:layout_height="0dp"/>

    <ImageButton
            android:id="@+id/blehButtonId"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@android:color/black"
            android:adjustViewBounds="true"
            android:src="@android:drawable/ic_delete"/>

    <Space
            android:layout_width="8dp"
            android:layout_height="0dp"/>

    <ImageButton
            android:id="@+id/dislikeButtonId"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@android:color/black"
            android:adjustViewBounds="true"
            android:src="@android:drawable/ic_delete"/>
</LinearLayout>

在活动或片段中,您可以这样调用。无需使用警报对话框。

private fun showDialog(context: Context){
        val dialog = Dialog(context)
        dialog.setContentView(R.layout.layout_for_long_like_button_option)
        dialog.show()
    }

答案 3 :(得分:0)

感谢你们的友好合作。我自己解决了我的问题。我只是将布局添加到想要的位置并解决了所有问题。再次谢谢你