【问题标题】:Layout And Views Visibility on app应用上的布局和视图可见性
【发布时间】:2014-02-22 05:01:11
【问题描述】:

我通过在设备上的开发者选项中启用设备显示布局边界在设备上测试我的 Android 应用。
我使用带有 textviews、评级栏和其他视图的膨胀视图检查我的列表视图,如下所示。

后来我尝试了 twitter 应用,但惊讶地看到只有一个视图???

有人知道如何在 listview 上获得像单一视图一样的 twitter 吗??

【问题讨论】:

    标签: java android listview layout


    【解决方案1】:

    有人知道如何在 listview 上获得像单一视图一样的 twitter 吗??

    每个列表项都是单个自定义 View 对象,而不是 ViewGroup 或布局。本质上,所有内容都直接绘制到onDraw() 中的Canvas 上,而不是依赖子ImageViewTextView 元素。调用Drawable.draw()Canvas.drawBitmap() 可以很容易地绘制图像,而文本通常使用Layout 绘制。

    此外,这意味着所有触摸事件都直接在onTouchEvent() 内部处理,以处理对下方图标和/或头像图像的点击,因此没有点击监听器。

    编辑:这是一个 30 秒的快速示例,应该足以让您入门:https://gist.github.com/devunwired/8704007

    【讨论】:

    • 你知道很多事情,请分享示例代码或正确的方法。
    • 哪个更消耗内存或性能问题??请在您的博客上详细说明这一点。
    • 也许我会在未来的某一天。一般来说,层次结构中的视图越少,内存和性能越好。内存中的对象更少,测量/布局代码花费的时间更少。
    【解决方案2】:

    他们可能正在使用包含标签来包含另一个布局文件

    如果你让你的 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>
    

    这样做的好处是您可以即时交换布局,甚至可以使用服务器端更改,而不必发布软件更新

    【讨论】:

    • 任何示例或示例如何处理服务器端更改??
    • 这是错误的; “显示布局边界”并不关心视图如何膨胀。 devunwired 说得对。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2020-12-05
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    相关资源
    最近更新 更多