是否可以将视图设置为XML布局文件中另一个视图的属性



我们有一个自定义GridView,它具有headerViewfooterView属性。 我想知道是否可以在 Android 中从布局文件中设置这些属性。

Windows 中的 XAML 使你可以轻松执行此操作,因为你可以通过属性(对于字符串、数字或其他简单类型)或通过具有ControlType:PropertyName语法的嵌套元素(对于任何对象类型)来指定属性。

下面是一个伪版本,如果Android支持类似的东西,这将是什么样子:

<MyCustomGrid
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <!-- This would set the 'headerView' property
         on 'MyCustomGrid' to a TextView -->
    <MyCustomGrid:headerView>
        <TextView android:text="I'm the Header TextView" />
    </MyCustomGrid:headerView>
</MyCustomGrid>

显然,上述内容是无效的。 但是是否可以在Android中做类似的事情,或者我必须在活动/片段的代码隐藏中做?

是的,你可以。

可以通过扩展 GridView 类创建自定义视图,并通过属性添加一些逻辑。这不能用作 XAML 中的附加属性(如 XAML UWP 中的 Grid.Column 或 Grid.Row),但你可以执行以下操作:

<com.teste.widget.MarqueIVGridView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:my_header="@layout/my_header"
/>

不要忘记在布局的根目录下添加命名空间:

xmlns:app="http://schemas.android.com/apk/res-auto"

谷歌有这个例子:标题网格视图

它使用不同的方法,如果你复制这个类,你只需要使用这个"HeaderGridView"并从它调用addHeaderView方法,发送你的标题视图膨胀。

随时提出任何问题,很高兴回答。

相关内容

  • 没有找到相关文章

最新更新