Android使用数据库中的数据来扩展线性布局

时间:2014-06-21 21:43:19

标签: android-layout android-listview android-linearlayout

您好我正在构建一款Android应用。我从数据库中获取一些数据并在布局中对其进行充气。目前我在Listview中显示数据。但除了在Listview中显示数据之外,还有其他方法吗?我的意思是像线性布局一样显示数据,就像Listview显示的方式一样?

我不想使用Listview,因为我的内容放在ScrollView中,并且在ScrollView中使用ListView并不能完全显示Listview元素的高度。

请查看图片

Picture for representation

我想要整个布局滚动。更简单的是,我想要一个完整的窗口滚动,就像我们在评论部分的facebook android app中一样。就像顶部的图像和底部的注释,整个窗口滚动但注释编辑文本和按钮保持固定。

任何帮助??

很抱歉,如果我的问题太长了。

提前致谢!

1 个答案:

答案 0 :(得分:0)

Hi Syed Sehu Mujammil A,

您可以利用LinearListViewlibrary来实现目标。此库允许您创建绑定到LinearLayout的ListAdapter。然后你可以把这个" ListView" (在ScrollView中,它实际上不是引擎盖下的ListView)。然后,您的整个布局可以滚动您想要的方式。

例如,您可以像这样设置视图:

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <!-- Your Title and other stuff in the green section here -->
        </LinearLayout>

        <com.linearlistview.LinearListView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/main_linear_list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:showDividers="none|middle|beginning|end"
            android:divider="#488888"
            android:dividerPadding="2dp"
            app:dividerThickness="2dp"
            />


    </ScrollView>

然后,您可以像使用普通ListView一样使用BaseAdapter或ListAdapter处理LinearListView(确保优化getView()方法)。这里需要注意的是,这个库使用了线性布局,并且加载了许多元素可能会锁定UI线程(不同于ListView,它会巧妙地将对象输入和输出)。可以巧妙地处理你的getView()和notifyDatasetChange()方法,以更好地优化初始加载(IE:使用ExecutorThreadPools的AsyncTasks来帮助加载数据)。

我希望有所帮助!

-Evan