【发布时间】:2014-02-22 05:01:11
【问题描述】:
我通过在设备上的开发者选项中启用设备显示布局边界在设备上测试我的 Android 应用。
我使用带有 textviews、评级栏和其他视图的膨胀视图检查我的列表视图,如下所示。
后来我尝试了 twitter 应用,但惊讶地看到只有一个视图???
有人知道如何在 listview 上获得像单一视图一样的 twitter 吗??
【问题讨论】:
标签: java android listview layout
我通过在设备上的开发者选项中启用设备显示布局边界在设备上测试我的 Android 应用。
我使用带有 textviews、评级栏和其他视图的膨胀视图检查我的列表视图,如下所示。
后来我尝试了 twitter 应用,但惊讶地看到只有一个视图???
有人知道如何在 listview 上获得像单一视图一样的 twitter 吗??
【问题讨论】:
标签: java android listview layout
有人知道如何在 listview 上获得像单一视图一样的 twitter 吗??
每个列表项都是单个自定义 View 对象,而不是 ViewGroup 或布局。本质上,所有内容都直接绘制到onDraw() 中的Canvas 上,而不是依赖子ImageView 和TextView 元素。调用Drawable.draw() 或Canvas.drawBitmap() 可以很容易地绘制图像,而文本通常使用Layout 绘制。
此外,这意味着所有触摸事件都直接在onTouchEvent() 内部处理,以处理对下方图标和/或头像图像的点击,因此没有点击监听器。
编辑:这是一个 30 秒的快速示例,应该足以让您入门:https://gist.github.com/devunwired/8704007
【讨论】:
他们可能正在使用包含标签来包含另一个布局文件
如果你让你的 list_row_item 布局像这样,你可以做同样的事情:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width=”match_parent”
android:layout_height=”match_parent”
>
<include layout="@layout/another_layout"/>
</LinearLayout>
这样做的好处是您可以即时交换布局,甚至可以使用服务器端更改,而不必发布软件更新
【讨论】: