设置ConstraintLayout组的alpha值

时间:2018-09-24 06:16:14

标签: android

我想问问是否可以更改约束组的alpha?

<android.support.constraint.Group
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:constraint_referenced_ids="statusTv, statusDropDownIv"
    android:id="@+id/buttonGroup"
    android:visibility="visible"
    android:alpha="0" />

现在,如果我将visibility标记设置为可见/消失,那么alpha标记就会生效,但是delete[] d;标记似乎不起作用。

5 个答案:

答案 0 :(得分:4)

组仅用于控制app:constraint_referenced_ids中参考ID的可见性。根据{{​​3}}。 该组的可见性将应用于引用的窗口小部件。这是一种轻松隐藏/显示一组小部件而无需以编程方式维护此小部件的便捷方法。

答案 1 :(得分:0)

我们不能使用Group来更改Alpha值,但是可以使用 DataBinding 来更改Alpha。

<layout>

    <data>
        <variable name="alpha" type="float" />
    </data>

    <!-- Unrelated attributes omitted for brevity. -->

    <android.support.constraint.ConstraintLayout>
        <Button android:alpha="@{alpha}"/>
        <TextView android:alpha="@{alpha}"/>
    </android.support.constraint.ConstraintLayout>
</layout>
binding.alpha = 1.0f  // 0.0 ~ 1.0

答案 2 :(得分:0)

对我也不起作用,请尝试使用ViewGroup设置Alpha属性并将您的视图[statusTv,statusDropDownIv]设置为子视图。对我来说,可以使用ScrollView,LinearLayout和其他工具。

我知道这很糟糕,因为约束布局应作为平面解决方案布局使用。

答案 3 :(得分:0)

我创建了此扩展功能以帮助我实现此功能

Count()

然后在代码中我像这样使用它

fun Group.setAlphaForAll(alpha: Float) = referencedIds.forEach {
    rootView.findViewById<View>(it).alpha = alpha
}

答案 4 :(得分:-1)

您的代码对我有用!

尝试清理重建您的项目

我希望这可以帮助您