【问题标题】:Android setting the visibility of main activityAndroid设置主要活动的可见性
【发布时间】:2021-06-06 18:37:22
【问题描述】:

是否可以将 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();

【问题讨论】:

  • 删除了 android-studio 标签,因为该标签用于处理与 Android Studio 产品相关的问题。您的问题是一个通用的 Android 问题,与 Android Studio 产品无关。
  • 另外,您应该编辑您的问题并发布布局文件的相关部分。当然,如果需要,您可以使用透明背景。目前尚不清楚您正在尝试做什么或您已经尝试过什么。向我们展示更多详情。
  • 已编辑我的问题,请检查一下,希望对您有所帮助。谢谢!
  • 你为什么要这样做?为什么不直接在onCreate()Activity 中启动Service,然后调用finish()
  • 是的,你是对的,我已经删除了按钮单击并将代码放在 onCreate() 中

标签: android android-activity


【解决方案1】:

出现白屏的原因是因为这是默认行为。您尝试将不可见、透明或不存在(大小为 0 像素)View 放在默认 View 之上,因此您仍然看到默认 View。您需要做的是将默认的View 替换为透明的View

有关如何获得透明的Activity 的信息,请参阅How do I create a transparent Activity on Android?

【讨论】:

  • 在尝试了上述解决方案后,我无法在我的布局上使用半透明样式。我可能做错了什么。我会更新你。谢谢各位指点。这是我的 xml schemas.android.com/apk/res/android" xmlns:tools="schemas.android.com/tools" android:layout_width="0dp" android:layout_height="0dp" android:theme="@style/Theme.Transparent"工具:context="com.example.snipper_android.MainActivity">
  • 您已将宽度和高度设置为零!请改用“match_parent”。
  • 您使用了哪种解决方案?有很多不同的答案。
  • match_parent 似乎也没有任何区别。我使用了您提到的相同解决方案,link,这个
  • 您是否创建了样式并在清单中的&lt;activity&gt; 声明中使用它?
猜你喜欢
  • 2016-04-19
  • 2014-01-24
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
相关资源
最近更新 更多