Android 5 上的活动对话框小而空

Posted

技术标签:

【中文标题】Android 5 上的活动对话框小而空【英文标题】:Activity dialog small and empty on Android 5 【发布时间】:2019-03-24 06:52:39 【问题描述】:

我有一个活动

public class DeviceListActivity extends AppCompatActivity 
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_devices_list);
        getWindow().setBackgroundDrawableResource(android.R.color.transparent);
    

在清单中:

<activity android:name="com.myapp.DeviceListActivity"
        android:screenOrientation="landscape" 
        android:theme="@style/Theme.AppCompat.Light.Dialog" />

打开它:

Intent intent = new Intent(this,
            BluetoothDeviceListActivity.class)
startActivity(intent)

在我的三星 Galaxy Tab A Android 7.0 上它运行良好,活动以对话框的形式打开,我可以看到内容。

但我正在运行 Android 5.2 的模拟器 (WSVGA_7) 上尝试,但对话框非常小且空白。

如何使所有 android 版本的 Dialog 活动都显示为相同而不显示为空白?我也尝试使用 Activity 而不是 AppCompatActivity 但同样的问题。

谢谢

编辑:

这里是活动的布局文件:activity_devices_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@color/white"
    android:orientation="vertical">

    <Button
        android:id="@+id/scan_button"
        android:layout_
        android:layout_
        android:background="@color/transparent"
        android:textSize="@dimen/unit_16_text"
        android:textColor="@color/green"
        android:text="@string/scan"
        android:layout_alignParentEnd="true"
        android:gravity="center"
        android:textAlignment="center" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_
        android:layout_
        android:indeterminate="true"
        android:max="100"
        android:backgroundTint="@color/white"
        android:indeterminateTint="@color/colorAccent"
        android:visibility="invisible"
        android:layout_below="@id/scan_button"/>

    <ListView android:id="@+id/listViewDevices"
        android:layout_
        android:layout_
        android:layout_below="@id/progressBar"
        />

    <TextView
        android:id="@+id/title_label"
        android:layout_
        android:layout_
        android:layout_above="@id/progressBar"
        android:layout_alignTop="@id/scan_button"
        android:layout_alignParentStart="true"
        android:layout_marginStart="0dp"
        android:layout_toStartOf="@id/scan_button"
        android:gravity="center_vertical"
        android:paddingLeft="8dp"
        android:text="@string/settings_printers_connection_settings"
        android:textColor="@color/green"
        android:textSize="18dp"
        android:textStyle="bold" />




</RelativeLayout>

【问题讨论】:

您可以发布您的 R.layout.activity_devices_list 文件吗? @TarasAntoshchuk 添加了布局。谢谢 【参考方案1】:

在您的活动的onCreate 方法中尝试使用getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

【讨论】:

我试过了,但现在屏幕全是白色的。该对话框跨越了整个屏幕,但缺少内容。

以上是关于Android 5 上的活动对话框小而空的主要内容,如果未能解决你的问题,请参考以下文章

Android:底部弹出活动

活动(主题对话框)在其上的来电屏幕阻塞

Android活动堆栈和对话框

Android:如何创建透明的对话框主题活动

活动中自定义对话框内的 ANDROID 片段

作为对话框的 Android 活动:无法正确显示布局内容