ScrollView包裹ListView
来源:互联网 发布:成都oppo 知乎 编辑:程序博客网 时间:2024/04/20 07:55
大家都知道ScrollView只能有一个“孩子”,而且纵向滚动的,同样的ListView也是纵向滚动的,当ScrollView包裹ListView时,是会出现冲突的,那么我们怎么解决呢,我这里提供了最简单的方法:
下面是我做的一个ListView后添加了一个TextView,但TextView要跟着ListView条目的滚动而滚动
一,自定义MyListView类继承ListView,并重写三个有参构造方法和onMeasure方法
package com.bawei.day16_scrollivew;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class MyListView extends ListView {
public MyListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyListView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// 重新计算ListView的高度
heightMeasureSpec=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
二,设置布局
<RelativeLayout 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" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<com.bawei.day16_scrollivew.MyListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</com.bawei.day16_scrollivew.MyListView>
<TextView
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#ff0" />
</LinearLayout>
</ScrollView>
</RelativeLayout>
三,为ListView定义一些假数据,就可以运行了
package com.bawei.day16_scrollivew;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
String[] names=new String[]{
"1","2","3","4","5","6","7","8","1","2","3","4","5","6","7","8","1","2","3","4","5","6","7","8"
,"1","2","3","4","5","6","7","8","1","2","3","4","5","6","7","8","1","2","3","4","5","6","7","8"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyListView listview=(MyListView) findViewById(R.id.listview);
listview.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_expandable_list_item_1, names));
}
}
- ScrollView包裹ListView
- ScrollView包裹ListView的两种处理方法
- scrollview 包裹ListView recyclerview 为什么会不显示
- ScrollView能包裹ListView和其他控件一起滚动
- android listView 全部展开,并且点击Item有效,可以用scrollView包裹,实现整体滑动
- 由于图片异步加载,造成的被scrollView包裹的listview显示不全
- 当ScrollView包裹listview的时候,listview只会显示一行,需要重写listview的onMeasure方法。
- ScrollView包裹,标题头置顶
- 设置listview高度包裹内容
- ScrollView包裹RecyclerView导致滑动缓慢
- scrollview listview
- ScrollView+ListView
- ScrollView && ListView
- android中 Scollview包裹listview问题
- 自定义viewgroup获取包裹的listview
- Android 下拉刷新(刷新布局需用ScrollView包裹)
- SwipeRefreshLayout嵌套ScrollView包裹复杂头布局和RecyclerView
- SwipeRefreshLayout嵌套ScrollView包裹复杂头布局和RecyclerView
- android-studio使用真机调试
- 快速搭建hibernate5.0.9的开发环境
- Eclipse Memory Analyzer 使用技巧
- 欢迎使用CSDN-markdown编辑器
- C语言求最小公倍数和最大公约数三种算法
- ScrollView包裹ListView
- 2016.03.06培训日记
- [数据库] 图解动态散列的插入操作
- serializable接口作用以及实例展示
- C指针强制类型转换
- POJ2932
- Bridging Qemu Image To Real Network Using Tap Interface
- 活动的最佳实践之 如何知晓当前是在哪个活动 --16
- VMware Workstation装windowsXP与主机形成局域网