转贴http://www.androidhub4you.com/2012/12/listview-into-scrollview-in-android.html
Step1- Create an Activity name-MainActivity.java and create a listview. package com.example.scrollviewlistviewdemo; import android.os.Bundle; import android.app.Activity; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private String listview_array[] = { "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN" }; ListView myList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myList = (ListView) findViewById(R.id.listView); myList.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listview_array)); Helper.getListViewSize(myList); } } Step2- Create main.xml- <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="19dp" android:text="@string/hello_world" /> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/ic_launcher" /> <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> </ScrollView> Step3- Finally and important thing create another class Helper.java and put below given code- package com.example.scrollviewlistviewdemo; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; public class Helper { public static void getListViewSize(ListView myListView) { ListAdapter myListAdapter = myListView.getAdapter(); if (myListAdapter == null) { //do nothing return null return; } //set listAdapter in loop for getting final size int totalHeight = 0; for (int size = 0; size < myListAdapter.getCount(); size++) { View listItem = myListAdapter.getView(size, null, myListView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } //setting listview item in adapter ViewGroup.LayoutParams params = myListView.getLayoutParams(); params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1)); myListView.setLayoutParams(params); // print height of adapter on log Log.i("height of listItem:", String.valueOf(totalHeight)); } } Hope it will help you thanks! Read more: http://www.androidhub4you.com/2012/12/listview-into-scrollview-in-android.html#ixzz2jpKMmi10
相关推荐
然而,当它被嵌套在ScrollView中时,通常会出现一些问题,比如滚动冲突或者ListView无法完整显示。这是因为ScrollView本身就是一个可滚动的视图,而ListView也是可滚动的,两者结合可能会导致滚动行为不正常。本篇...
实现水平ListView,并且解决水平ListView在ScrollView中出现的滑动冲突。 博客地址:http://love-java-only.iteye.com/blog/2020004 联系邮箱:liucanwen517#gmail.com
自定义的一个ListView,在布局的时候使用,可以解决ListView和ScrollView冲突问题
通过重写`onMeasure()`和`onLayout()`方法,你可以确保ListView在ScrollView中正确测量和布局,从而解决滚动冲突。 3. **调整布局设计**:重新考虑你的布局设计,尽量避免使用嵌套的滚动视图。例如,可以尝试将需要...
很多朋友因项目需求问题需要在ScrollView中嵌套使用ListView或ScrollView 但是彼此的滑动事件会发生冲突,网上大多数都是计算ListView的高度来解决这个问题,但个人亲手尝试 结果ListView的Item要是过多的话ListView...
在Android开发中,有时我们需要在一个布局中同时使用ScrollView和ListView,这样的组合被称为“嵌套滚动”。这通常是由于我们的界面需要展示大量的数据,并且用户可能希望滚动整个页面,而不仅仅是ListView的一部分...
4. **使用 FLAG_DISMISS_DECELERATION**:通过设置Window的FLAG_DISMISS_DECELERATION标志,可以让ScrollView在滑动结束后快速停止,从而减少冲突。但这可能会影响到ScrollView的滚动体验。 5. **使用 ...
然而,在某些场景下,开发者可能希望在一个`ScrollView`中嵌套一个`ListView`,以实现更复杂的设计需求。然而,这种嵌套设计往往会导致`ListView`无法正常滚动的问题,即`ListView`似乎只显示一行多一点的内容,而...
在Android开发中,ListView和ScrollView是两种常用的布局控件。ListView用于显示大量可滚动的数据列表,而ScrollView则是一个可以容纳单个子视图并允许垂直滚动的容器。然而,当试图在同一布局中同时使用这两个控件...
在一些项目中需要用到listview嵌套在scrollview中的情况,但会碰到焦点冲突,scrollview焦点覆盖listview造成listview不能滑动,这种情况时要在scrollview中添加android:fillViewport="true"这句,并在listview中...
在Android开发中,ListView和ScrollView是两种常用的布局控件,分别用于展示可滚动的列表视图和可滚动的内容视图。本主题将深入探讨如何在ListView或ScrollView中动态改变Headerview的透明度以及实现显示或隐藏的...
在Android开发中,ListView和ScrollView是两种常用的布局组件,它们各自有着特定的使用场景和功能。然而,当在一个布局中同时使用ListView和ScrollView时,往往会出现冲突问题,导致滚动不顺畅或者只有一方能正常...
在Android开发中,ListView和ScrollView是两种常用的布局控件。ListView用于展示大量可滚动的数据,而ScrollView则可以包裹任意数量的子视图并提供垂直滚动功能。然而,当ListView被放置在ScrollView内时,两者之间...
然而,系统默认的ListView是不建议直接嵌套在ScrollView内的,因为两者都有滚动功能,这可能导致冲突和性能问题。为了克服这个问题,开发者常常需要自定义ListView来适应ScrollView的环境。 首先,我们要理解为什么...
在Android开发中,ListView和ScrollView是两种常用的布局控件,它们各自有其特定的使用场景。ListView主要用于显示大量可滚动的数据列表,而ScrollView则用于包裹任何视图,使其可以滚动查看完整内容。当在一个布局...
在Android开发中,ListView和ScrollView都是非常常见的视图组件。ListView用于显示大量的数据列表,而ScrollView则可以包裹任意数量的子视图,实现整个布局的滚动。然而,当ListView被嵌套在ScrollView中时,就会...
这个“Android下拉刷新控件(ListView好ScrollView版)”压缩包文件包含的是关于如何在Android中实现这种功能的具体资料,主要集中在ListView和ScrollView这两种常见的滚动视图上。 1. **下拉刷新概念** 下拉刷新...
在Android开发中,ScrollView和ListView是两种常用的布局组件,它们分别用于实现可滚动的大视图和展示多行可滚动的数据列表。然而,在实际应用中,当这两种组件同时存在于一个界面时,滚动冲突的问题就会出现,导致...
在Android开发中,ListView和ScrollView是两种常用的布局控件,它们各自有其特定的应用场景。ListView主要用于显示大量的可滚动数据,而ScrollView则用于容纳比屏幕更大的内容。然而,当需要在一个ScrollView中嵌套...
在Android开发中,ListView和ScrollView都是常用的视图组件,它们各自有着特定的用途。ListView主要用于显示大量的可滚动数据,每个条目通常具有相同的布局,而ScrollView则是一个可以容纳多个子视图并允许用户滚动...