没有合适的资源?快使用搜索试试~ 我知道了~
Android_ScrollView与ListView_GridView共存冲突解决方案
4星 · 超过85%的资源 需积分: 10 7 下载量 199 浏览量
2013-08-06
08:57:52
上传
评论
收藏 131KB PDF 举报
温馨提示
试读
11页
Android_ScrollView与ListView_GridView共存冲突解决方案
资源推荐
资源详情
资源评论
Android ScrollView 与 ListView,GridView 共存冲突解决方案
我们在真实项目中通常会遇到 ListView 或者 GridView 嵌套在 ScrollView
中问题。但是做的时候会发现,一旦两者进行嵌套,即会发生冲突。得不到我们
希望的效果。由于 ListView 和 GridView 本身都继承于 ScrollView,一旦在
ScrollView 中嵌套 ScrollView,那么里面的 ScrollView 高度计算就会出现问题。
我们也就无法得到想要的效果。下面进入正题,我们将分别讨论 ScrollView 中
嵌套 ListView 和 FGridView 的情况:
核心解决方案: 重写 ListView 或者 GridView 的 OnMesure 方法:
[java]
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
int expandSpec = MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
一、ScrollView 中嵌套 ListView
BlogScrollViewActivity.java 代码:
[java]
package com.csdn.blog.scrollview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
public class BlogScrollViewActivity extends Activity {
/** Called when the activity is first created. */
// MyGridView grid;
ImageView image;
ScrollView scroll;
String[] texts=new String[]{"无线","通话设置","声音","显示","位置
",
"应用","账户","隐私权","存储","语言
","游戏","娱乐","电影","音乐",
"辅助功能","日期"};
/* ArrayAdapter<String> adapter;*/
TestListView list;
LinearLayout.LayoutParams lp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
void init(){
list=(TestListView)findViewById(R.id.list);
image=(ImageView)findViewById(R.id.image);
list.setAdapter(new GridAdapter(this));
scroll=(ScrollView)findViewById(R.id.scroll);
scroll.requestChildFocus(image, null);
}
private class GridAdapter extends BaseAdapter{
Activity context;
public GridAdapter(Activity context){
this.context=context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return texts.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup
parent) {
// TODO Auto-generated method stub
ViewHolder holder=null;
if(convertView==null){
convertView=context.getLayoutInflater().inflate(R.layout.item, null);
holder=new ViewHolder();
holder.text=(TextView)convertView.findViewById(R.id.grid_text);
convertView.setTag(holder);
}
else{
holder=(ViewHolder)convertView.getTag();
}
holder.text.setText(texts[position]);
return convertView;
}
class ViewHolder {
TextView text;
}
}
}
TestListView.java 代码如下:
[java]
剩余10页未读,继续阅读
资源评论
- wanggdongz2013-10-19学习一下,要是源代码更好了
HelloKitty19901231
- 粉丝: 555
- 资源: 727
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功