Изменить непрозрачность макета, кроме Progressbar - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть приложение, которое использует круговой индикатор выполнения.

Мне хотелось изменить непрозрачность всего макета до его полной загрузки.

Примерно так:

enter image description here

Мне удается изменить непрозрачность макета с помощью:

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 из макета Opacity?

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Я думаю, что ваш макет обнаружения является родителем просмотра прогресса. Вы должны сделать фоновый вид с непрозрачностью.

0 голосов
/ 24 апреля 2020

Я предполагаю, что 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>

Кстати, идентификаторы представления лучше начинать с маленькой буквы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...