1.要点一:去除ListView的scrollBar,添加ScrollView的scrollBar:
<ScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scrollbars="vertical">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="5dp" android:paddingRight="5dp"
android:paddingTop="6dp" android:paddingBottom="6dp"
android:background="@color/LightSteelBlue1">
<TextView android:id="@+id/text" android:text="列表如下:"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/White" android:layout_marginLeft="10dp"
android:gravity="center_horizontal"
android:paddingTop="5dp" android:paddingBottom="5dp" android:clickable="true"/>
</LinearLayout>
<ListView android:id="@+id/list_alarm" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"
android:cacheColorHint="@color/LightCyan2" android:scrollbars="none"/>
</LinearLayout>
</ScrollView>
2.要点二:(设置ListView的高度,否则只能显示1-2行)
在setAdapter之后,在设置ListView的高度(不是wrap_content),其高度 = 每行高度 * 行数 + 行间距 * (行数 -
1),用ViewGroup.LayoutParams 设置ListView 的高度
private void setAdapter(){
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(MainActivity.this,android.R.layout.simple_list_item_1,listSource);
mListView.setAdapter(adapter);
setLvHeight();
}
private void setLvHeight(){
ListAdapter adapter = mListView.getAdapter();
if(adapter == null){
ShowLog.d(TAG, "no data in ListView");
return;
}
int totalHeight = 0;
for(int i = 0;i < adapter.getCount(); i++){
View itemView = adapter.getView(i, null, mListView);
itemView.measure(0, 0);
totalHeight += itemView.getMeasuredHeight();
}
ViewGroup.LayoutParams layoutParams = mListView.getLayoutParams();
layoutParams.height = totalHeight + (mListView.getDividerHeight() * (adapter.getCount() - 1));//总行高+每行的间距
mListView_Alarm.setLayoutParams(layoutParams);
}
分享到:
相关推荐
3. **使用HeadView和FootView**:在ListView中添加HeadView和FootView,模拟ScrollView的效果。将需要在ScrollView中显示的内容作为ListView的头尾视图,然后让ListView中的其他内容滚动。但这种方法可能不适用于...
4. 在ScrollView中添加自定义的ListView,并确保内容填充到ListView中。 通过这种方式,我们自定义的ListView可以在ScrollView中正常工作,既保留了ListView的滚动优化,又解决了与ScrollView的冲突问题。在实际...
最后,如果ListView中的数据量仍然很大,为了优化性能,可以考虑使用RecyclerView替换ListView。RecyclerView提供了更多的自定义选项和更好的性能,特别是在大数据集的情况下。 总结,处理ScrollView中嵌套ListView...
在这种情况下,我们可能会尝试在ScrollView中嵌入一个ListView。ScrollView是一个可滚动的视图容器,它允许用户通过滑动来查看超出屏幕范围的内容,而ListView则是一个用于展示大量数据的可滚动视图,每个条目通常由...
在ListView中,你需要确保在手指离开屏幕时将滑动事件传递回ScrollView。 ```java public class CustomScrollView extends ScrollView { // ... @Override public boolean onInterceptTouchEvent(MotionEvent ev...
4. 使用Headerview和Footerview:如果只是在ListView的顶部或底部需要添加ScrollView,可以考虑将ScrollView作为ListView的Headerview或Footerview。 5. 考虑使用其他布局管理器:如RecyclerView,它提供了更灵活的...
- 在ScrollView中添加ListView,并确保ListView的`android:nestedScrollingEnabled="true"`属性设置为true。 - 实现自定义的ScrollView,可能需要重写`onInterceptTouchEvent`和`onTouchEvent`方法,以便正确处理...
在ListView中,我们可以在数据达到一定数量或者到底部时,调用addFooterView方法添加这个Footer,并在数据加载完成后移除它。对于GridView,过程类似,只是需要确保Footer视图的宽度和高度与单元格相匹配,以保持...
在一些项目中需要用到listview嵌套在scrollview中的情况,但会碰到焦点冲突,scrollview焦点覆盖listview造成listview不能滑动,这种情况时要在scrollview中添加android:fillViewport="true"这句,并在listview中添加 ...
在Android开发中,有时我们需要在一个页面中展示大量的可滚动内容,并且这些内容可能包含多个不同类型的视图,这时就会涉及到ScrollView和ListView的结合使用。本文将深入探讨如何解决两者结合时可能出现的问题,...
4. **使用`HeaderView`或`FooterView`**:有时可以通过在ListView的头部或尾部添加固定高度的视图,模拟ScrollView的效果,但这种方法限制了ScrollView的灵活性。 5. **使用第三方库**:还有一些第三方库,如`...
这种方式将ScrollView的功能合并到ListView中,避免了直接嵌套。例如: ```java View headerView = getLayoutInflater().inflate(R.layout.scrollable_header, null); listView.addHeaderView(headerView); ``` **...
可以将原始的ScrollView替换为NestedScrollView,然后直接在其中添加ListView,通常可以避免大部分冲突。 接下来,我们要实现ListView滑动到底部或顶部后还能继续拖拽一段距离,松手后自动回弹的效果。这可以通过...
本文将探讨如何解决这个问题,并实现动态添加ListView中的Item。 首先,我们来看ScrollView的基本用法。ScrollView通常用来包裹那些内容超过屏幕高度的View,如LinearLayout或RelativeLayout。它的主要属性有`...
5. **优化ListView**:确保ListView中的每个子项(Item)尽可能轻量级,避免在布局中包含复杂的视图层次。此外,使用ViewHolder模式可以有效减少视图的创建和销毁,提高性能。 6. **监听滑动事件**:可以通过监听...
5. **使用Headerview和Footerview**:如果ScrollView只有一部分内容需要滚动,而ListView只是额外信息,可以考虑将ListView作为ScrollView的Headerview或Footerview添加。这样,ListView将作为ScrollView的一部分,...
在实际编码过程中,我们可能需要创建一个新的类,如NestedListView,继承自ListView,并在NestedListView中添加以下代码: ```java @Override protected void onMeasure(int widthMeasureSpec, int ...
本文将深入探讨如何实现“弹性拉伸”的ScrollView、在ScrollView中嵌套ListView以及添加ScrollView的滑动监听。这些技巧在创建复杂的用户界面时非常实用。 首先,让我们谈谈“弹性拉伸”效果的ScrollView。这种效果...
当ListView滚动时,我们可以比较ListView的顶部项与ScrollView中的标题项,如果匹配,就更新顶部大标题的状态,如改变颜色或添加选中效果。 在实现过程中,我们还需要一个适配器(Adapter)来提供ListView的数据,...
这篇博客"android listview ScrollView冲突 listview checkbox"探讨了如何处理这种冲突,特别是当ListView中的每一项包含一个CheckBox时。CheckBox在ListView中的应用常见于多选列表场景,用户可以通过勾选CheckBox...