【问题标题】:Change layout opacity except for Progressbar更改除进度条外的布局不透明度
【发布时间】:2020-04-24 14:55:28
【问题描述】:

我有一个使用圆形进度条的应用。

我想改变整个布局的不透明度,直到它完成加载。

类似这样的:

我设法通过使用以下方法更改布局的不透明度:

cl = findViewById( R.id.Discover_Layout );
cl.setAlpha( 0.45f );

但是,它也会改变ProgressBar 的不透明度。

我尝试使用:

cl = findViewById( R.id.Discover_Layout );
cl.setAlpha( 0.45f );

pb_Discover = findViewById( R.id.pb_Discover );
pb_Discover.setVisibility( View.VISIBLE );
pb_Discover.setAlpha( 1f );

但它仍然使 ProgressBar 保持不透明度。

如何从布局不透明度中排除ProgressBar

谢谢

【问题讨论】:

  • 你能发布进度条整个根布局的xml吗
  • 如果您的 pb_DiscoverDiscover_Layout 中的子级,请尝试将其提取到不同的布局,例如具有 pb_Discoverframelayout > 和 Discover_Layout

标签: java android android-constraintlayout android-progressbar


【解决方案1】:

我假设Discover_Layout 是包含pb_Discover 进度条的父布局。所以改变父不透明度也将反映在子视图中。您可以创建一个framelayout 作为父布局并将Discover_Layout 和 pb_Discover 添加为 2 个单独的子视图。所以Discover_Layout 不透明度的变化不会影响pb_Discover 进度条。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame_layout_badge"
android:layout_width="match_parent"
android:layout_height="match_parent">

< ----Discover_Layout---/>

< ----pb_Discover---/>

</FrameLayout>

顺便说一下,最好将视图 ID 命名为以小写字母开头

【讨论】:

    【解决方案2】:

    我认为您的发现布局是进度视图的父级。 您必须使用不透明度制作背景视图。

    【讨论】:

      猜你喜欢
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2012-06-16
      • 2011-01-22
      相关资源
      最近更新 更多