Android:自定义可见性xml参数

问题描述 投票:0回答:1

我想为我的一个自定义视图创建一个新的xml参数,以处理其中某些内容的可见性。我当然可以通过其他方式来做到这一点,但是我想以一种可以使用常规android params对其进行更改的方式来做到这一点。

类似:

<MyCustomView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:my_custom_visibility="gone"/>

所以我勉强做

viewToBeHidden.visibility = a.getInt(R.styleable.my_custom_view_my_custom_visibility, View.Visible);

我尝试过,因为可见性是整数,但它不允许我放入视图声明中

<attr name="my_custom_visibility" format="integer" />

使用

<attr name="my_custom_visibility" format="reference" />

导致编译错误:

AAPT: error: 'gone' is incompatible with attribute my_custom_visibility (attr) reference [weak].

该属性可用的其他类型似乎不适用于这种情况。

有没有办法做到这一点?

android view visibility custom-attributes
1个回答
0
投票

基于@Pawel和@Sam注释,我创建了一个专用的枚举属性,如下所示:

<attr name="my_custom_visibility" format="enum">
            <enum name="gone" value="8" />
            <enum name="invisible" value="4" />
            <enum name="visible" value="0" />
        </attr>

并在视图中像这样使用它:

viewToBeHidden.visibility = attrs.getInt(R.styleable.my_custom_view_my_custom_visibility, View.VISIBLE);

所以感觉就像是“原始的”

© www.soinside.com 2019 - 2024. All rights reserved.