当ListView存在于ScrollView或者ListView里面
来源:互联网 发布:android 相册源码 编辑:程序博客网 时间:2024/04/28 15:11
如题,当ListView存在于ScrollView或者ListView里面时,会出现一种奇怪的现象,无法伸展,一直处于只能显示第一条item的状态。为了搞清楚这个问题,纠结了好久,最后终于在stackoverflow上找到了答案。
ListView并没有一个选项,能使之完全伸展开来。所以在ScrollView或者ListView中使用ListView is not a good idea。
我们可以使用LinearLayout实现类似的效果。写了一个自定义类,如下,可代替ListView,运用于ScrollView或者ListView。效果近视,可修改代码自定义。
package com.example.view;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class UnscrollableListView extends LinearLayout {
private Context context;
public UnscrollableListView(Context co) {
super(co);
context = co;
}
public UnscrollableListView(Context co, AttributeSet as)
{
super(co, as);
context = co;
}
public void setViews(Context co, List<Map<String, Object>> data,
int resource, String[] keys, int[] ids)
{
View view;
for (Map<String, Object> m : data)
{
view = LayoutInflater.from(co).inflate(resource, null);
bindView(view, m, keys, ids);
addView(view);
addView(getSeparator());
}
}
private View getSeparator()
{
View view;
view = new View(context);
view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 1));
view.setBackgroundColor(getResources().getColor(R.color.separator));
return view;
}
private void bindView(View page, Map<String, Object>data, String[] keys, int[] ids)
{
View view;
Object obj;
for (int i = 0; i < keys.length; i++)
{
view = page.findViewById(ids[ i ]);
obj = data.get(keys[i]);
if (view instanceof TextView)
{
((TextView)view).setText(obj.toString());
} else if (view instanceof ImageView)
{
((ImageView)view).setImageResource((Integer)obj);
}
}
}
}
- 当ListView存在于ScrollView或者ListView里面
- ListView于ScrollView
- Android 当ScrollView里面嵌套Listview时计算高度
- ListView镶嵌在ScrollView里面
- ScrollView里面嵌套ListView,RecyclerView
- ListView嵌套ListView或者ScrollView解决方法
- ListView或者ScrollView嵌套listView的解决方案
- ScrollView嵌套GridView或者ListView
- 当PullToRefreshScrollView里面嵌套ListView
- Android的listview和ScrollView存在兼容问题
- 当ScrollView遭遇ListView & Webview progress bar
- 关于ScrollView里面嵌套ListView和GridView
- ListView被嵌套在ScrollView里面
- 解决ScrollView里面嵌套Listview的问题
- 解决ScrollView 里面嵌套Listview 的冲突
- ScrollView里面嵌套listview 不冲突
- ScrollView嵌套Gridview或者listview滚动问题
- 关于scrollView嵌套listView或者GridView
- 转载:Java常用的几种排序算法 。
- MFC中利用树形控件和列表控件来显示显示系统的资源列表
- mlock家族:锁定物理内存
- [FZU 1022] 三色二叉树/二叉树染色
- loadrunner11 安装时 无法将值写入注册表项 解决方法
- 当ListView存在于ScrollView或者ListView里面
- LTE物理层详解--- 基本介绍
- C语言的不完整类型和前置声明
- 研究生学位论文写作与答辩存在的几个问题
- sublime text 3 序列号
- 【Codeforces】 489D Unbearable Controversy of Being
- 回调函数和普通函数的区别
- Dxva的官方文档
- android sdk下载设置