【问题标题】:popup window is not properly shown in android L弹出窗口在 android L 中未正确显示
【发布时间】:2015-02-05 09:54:16
【问题描述】:

这就是它在 android L 上的样子:

果冻豆上的样子:

这是布局xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:customfont="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:background="@color/black_bg_dialog"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_marginRight="30dp"
        android:layout_marginLeft="30dp"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="vertical"
        android:background="@color/enquiry_bg">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColor="@color/enquiry_text_top"
            customfont:customTypeface="fonts/Roboto-Light.ttf"
            android:text="@string/contact_us" />

        <EditText
            android:id="@+id/et_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/name"
            android:ellipsize="end"
            android:hint="@string/contact_hint_name"
            android:inputType="text"
            android:singleLine="true"
            android:textColor="@color/enquiry_text"
            android:layout_marginTop="20dp"
            android:textColorHint="@color/enquiry_text_hint"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/et_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/email"
            android:ellipsize="end"
            android:hint="@string/contact_hint_email"
            android:inputType="textEmailAddress"
            android:singleLine="true"
            android:textColor="@color/enquiry_text"
            android:layout_marginTop="20dp"
            android:textColorHint="@color/enquiry_text_hint"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/et_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/phonenumber"
            android:ellipsize="end"
            android:hint="@string/contact_hint_phone"
            android:inputType="phone"
            android:singleLine="true"
            android:textColor="@color/enquiry_text"
            android:layout_marginTop="20dp"
            android:textColorHint="@color/enquiry_text_hint"
            android:textSize="18sp" />

        <FrameLayout
            android:id="@+id/fl_send"
            android:layout_width="match_parent"
            android:background="@color/enquiry_send_bg"
            android:layout_marginTop="20dp"
            android:layout_gravity="center"
            android:padding="10dp"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/btn_submit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawablePadding="20dp"
                android:drawableRight="@drawable/sendbutton"
                android:text="@string/contact_btn_submit"
                android:textColor="@color/white"
                android:layout_gravity="center"
                android:gravity="center"
                customfont:customTypeface="fonts/Roboto-Regular.ttf"
                android:textSize="23sp" />

        </FrameLayout>

    </LinearLayout>

    <RelativeLayout
        android:id="@+id/rl_progress_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/loading_alpha"
        android:visibility="gone">

        <ImageView
            android:id="@+id/iv_progress_icon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</RelativeLayout> 

弹窗代码:

View popUpView = activity.getLayoutInflater().inflate(R.layout.dialog_contact_us, null);

        enquiryPopUp = new PopupWindow(popUpView, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT, true);
        enquiryPopUp.setBackgroundDrawable(new BitmapDrawable(null, ""));
        enquiryPopUp.setAnimationStyle(android.R.style.Animation_Dialog);
        enquiryPopUp.showAtLocation(popUpView, Gravity.CENTER, 0, 0);

我不明白我做错了什么。请帮助。

【问题讨论】:

  • 您应该为此使用对话框。
  • @alanv:有什么具体原因吗?
  • 您正在做很多调整以使 PopupWindow 看起来和行为像一个对话框,而您可以通过使用真正的 AlertDialog 或 Dialog 来避免这种情况。

标签: android performance android-layout android-5.0-lollipop android-popupwindow


【解决方案1】:

我的 value-21 的 style.xml 中有以下行

<item name="android:fitsSystemWindows">true</item>

这对我来说是个问题。但是由于我解释here

的原因,我无法删除此行

所以我在 PopupWindow 布局的每个视图中添加了android:fitsSystemWindows="false"

哇哦!!!解决了。

【讨论】:

  • 为我工作谢谢 :)
  • 你知道为什么会这样吗?
猜你喜欢
  • 2019-12-02
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 2012-07-21
  • 2012-02-20
  • 2012-02-08
相关资源
最近更新 更多