ListView与ScrollView冲冲突
来源:互联网 发布:网络被禁用了怎么恢复 编辑:程序博客网 时间:2024/04/29 04:34
因为ListView与ScrollView 都自带了可滑动的功能,但当两者同时使用时会出现冲突
解决的办法是,对Listview进行设置高度即可。
ExpandableListView expandView=(ExpandableListView) findViewById(R.id.ShowItem_ExpandView);
expandView.setAdapter(expandAdapter);
setListViewHeight(expandView);
expandView.setOnGroupClickListener(groupClickLis);
设置ListView的适配器
private ExpandableListAdapter expandAdapter=new ExpandableListAdapter()
{
public void unregisterDataSetObserver(DataSetObserver observer) {
// TODO 自动生成的方法存根
}
public void registerDataSetObserver(DataSetObserver observer) {
// TODO 自动生成的方法存根
}
public void onGroupExpanded(int groupPosition) {
// TODO 自动生成的方法存根
}
public void onGroupCollapsed(int groupPosition) {
// TODO 自动生成的方法存根
}
public boolean isEmpty() {
// TODO 自动生成的方法存根
return false;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO 自动生成的方法存根
return false;
}
public boolean hasStableIds() {
// TODO 自动生成的方法存根
return false;
}
public long getGroupId(int groupPosition) {
// TODO 自动生成的方法存根
return 0;
}
public Object getGroup(int groupPosition) {
// TODO 自动生成的方法存根
return null;
}
public long getCombinedGroupId(long groupId) {
// TODO 自动生成的方法存根
return 0;
}
public long getCombinedChildId(long groupId, long childId) {
// TODO 自动生成的方法存根
return 0;
}
public long getChildId(int groupPosition, int childPosition) {
// TODO 自动生成的方法存根
return 0;
}
public Object getChild(int groupPosition, int childPosition) {
// TODO 自动生成的方法存根
return null;
}
public boolean areAllItemsEnabled() {
// TODO 自动生成的方法存根
return false;
}
public int getGroupCount()
{
return 3;
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent)
{
return convertView;
}
public int getChildrenCount(int groupPosition)
{
int len=0;
switch(groupPosition)
{
}
return len;
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent)
{
convertView=webView;
}
return convertView;
}
};
/**
* ExpandableListView 监听
*/
OnGroupClickListener groupClickLis=new OnGroupClickListener()
{
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id)
{
setListViewHeight(parent, groupPosition);
return false;
}
};
/**
* 给每一个ListView设置高度
* @param listView
*/
private void setListViewHeight(ListView listView)
{
ListAdapter listAdapter = listView.getAdapter();
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++)
{
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1)+50);
listView.setLayoutParams(params);
listView.requestLayout();
}
/**
* 给ExpandableListView 设置高度()
*/
private void setListViewHeight(ExpandableListView listView,int group)
{
ExpandableListAdapter listAdapter = listView.getExpandableListAdapter();
int totalHeight = 0;
int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(),
MeasureSpec.AT_MOST);
for (int i = 0; i < listAdapter.getGroupCount(); i++)
{
View groupItem = listAdapter.getGroupView(i, false, null, listView);
groupItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += groupItem.getMeasuredHeight();
if (((listView.isGroupExpanded(i)) && (i != group))
|| ((!listView.isGroupExpanded(i)) && (i == group)))
{
for (int j = 0; j < listAdapter.getChildrenCount(i); j++)
{
View listItem = listAdapter.getChildView(i, j, false, null,
listView);
listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}
}
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
int height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getGroupCount() - 1)+50);
if (height < 10)
height = 200;
params.height = height;
listView.setLayoutParams(params);
listView.requestLayout();
}
}
- ListView与ScrollView冲冲突
- scrollview与listview冲突
- ListView与ScrollView冲突
- ScrollView与ListView冲突解决
- listView与ScrollView的冲突
- scrollView与ListView 冲突解决
- ScrollView与listview冲突解决方案
- ListView与ScrollView冲突问题
- ScrollView与ListView冲突解决
- ListView与ScrollView冲突解决方法
- 在listview 与ScrollVIew 冲突
- 解决ListView与ScrollView冲突
- Scrollview 与 listview 冲突解决?
- ScrollView与ListView冲突问题
- 解决scrollview与listview冲突问题
- ListView/GridView与ScrollView Scrollbar冲突问题。
- ScrollView与ListView的冲突问题
- ScrollView与ListView的冲突问题
- 人生在这里开始
- 硬件手机和专业代呼介绍QQ 787289301
- python os模块
- 过滤工具grep | egrep|awk|sed
- 机器学习的四种方式
- ListView与ScrollView冲冲突
- C:二维数组常用操作
- UbutuKylin 中./bashrc坏了的解决办法
- 工作生活之外,思考学习其中
- leetcode
- 关于会话、进程、请求的几个常用SQL
- 机器学习:最简明入门指南
- 我之见--java多线程信号量Semaphore
- apt-get命令