您好我正在构建一款Android应用。我从数据库中获取一些数据并在布局中对其进行充气。目前我在Listview中显示数据。但除了在Listview中显示数据之外,还有其他方法吗?我的意思是像线性布局一样显示数据,就像Listview显示的方式一样?
我不想使用Listview,因为我的内容放在ScrollView中,并且在ScrollView中使用ListView并不能完全显示Listview元素的高度。
请查看图片
我想要整个布局滚动。更简单的是,我想要一个完整的窗口滚动,就像我们在评论部分的facebook android app中一样。就像顶部的图像和底部的注释,整个窗口滚动但注释编辑文本和按钮保持固定。
任何帮助??
很抱歉,如果我的问题太长了。
提前致谢!
答案 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