首页 > 解决方案 > Android设置主要活动的可见性

问题描述

是否可以将 android 中 MainActivity 页面的可见性设置为不可见或使其透明?我尝试将可见性设置为不可见,并将高度宽度设置为 0dp,但这仍然显示带有白色背景和蓝色标题的 mainactivity。我想要实现的是,我正在打开一个浮动窗口,单击 mainactivity 中的按钮即可拖动该窗口,但我想通过触发代码本身的按钮单击来直接打开浮动窗口。这可行,但在打开浮动窗口之前,mainactivity 仍会显示一秒钟。我想让 mainactivity 页面不可见或透明,因此 mainactivity 页面不明显。这是 mainactivity.xml 的 XML,

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="Invisible"
android:background="@color/material_on_primary_disabled"
tools:context="com.example.widget_android.MainActivity">

<Button
    android:id="@+id/open_widget"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:text="Open Widget" />

单击 open_widget(由代码触发,而不是用户必须单击它)打开浮动窗口。我想将用户直接带到浮动窗口,而不是作为主要活动页面的登录页面。

这是后端java代码上发生的事情

findViewById(R.id.open_widget).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startService(new Intent(MainActivity.this,WidgetService.class));
            finish();
        }
    });

    findViewById(R.id.open_widget).performClick();

标签: androidandroid-activity

解决方案


你得到一个白屏的原因是因为这是默认行为。您尝试View在 default 之上放置一个不可见、透明或不存在(大小为 0 像素) View,所以您仍然看到 default View。您需要做的是将默认设置替换View为透明的View.

请参阅如何在 Android 上创建透明 Activity?有关如何获得透明的信息Activity


推荐阅读