Я работаю и Googling на некоторое время, и я, кажется, в тупике. Это мнение моего фрагмента:View setView Нечетное поведение
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<include layout="@layout/swipe_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
... other views
</RelativeLayout>
Компоновка swipe_hint выглядит так:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_hint_layout"
android:visibility="gone"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
... more views
Теперь в Java код, который я пытаюсь изменить альфа независимо следующим образом:
// this fragment's view is the first xml layout above
View pageOneLayout = fragment.getView();
// get the layout of the swipe hint through the fragment's view since it is included
View swipeView = pageOneLayout.findViewById(R.id.swipe_hint_layout);
// here is where I run into problems
pageOneLayout.setAlpha(.25f);
swipeView.setAlpha(1);
Установка pageOneLayout
alpha to .25 изменяет альфа всей компоновки t o 25% прозрачный, что и следовало ожидать. Однако при настройке альфа для swipeView
отдельно он, кажется, не влияет. swipeView
по-прежнему .25 прозрачный. Я бы подумал, что установка альфа отдельно, как это приведет к тому, что два представления будут иметь разные уровни прозрачности. Однако, это не так. Может ли кто-нибудь пролить свет на эту тему?
но не установил бы альфа-перерыв для ребенка этого наследования? –
Попробуйте установить 0.5 для ребенка и посмотрите, что произойдет. – Nuwisam
есть способ нарушить наследование, чтобы я мог иметь их на двух разных уровнях альфа-уровня? –