动态设置ListView的高度
来源:互联网 发布:类似008神器的软件 编辑:程序博客网 时间:2024/05/29 10:09
“`
package com.android.customlistviewheight;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;List<String> list = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = ((ListView) findViewById(R.id.listview)); getList(); MyAdapter myAdapter = new MyAdapter(); listView.setAdapter(myAdapter); setListViewHeight(listView);}private void getList() { list.clear(); for (int i = 0; i < 20; i++) { list.add("数据;;" + i); }}public void setListViewHeight(ListView listView) { ListAdapter adapter = listView.getAdapter(); if (adapter == null) { return; } int totalHeight = 0; for (int i = 0; i < 8; i++) { View listViewItem = adapter.getView(i, null, listView); listViewItem.measure(0, 0); totalHeight += listViewItem.getMeasuredHeight(); } ViewGroup.LayoutParams layoutParams = listView.getLayoutParams(); layoutParams.height = totalHeight + (listView.getDividerHeight()) * (adapter.getCount() - 1); listView.setLayoutParams(layoutParams);//设置listView高度}class MyAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item, parent, false); holder.tv = (TextView) convertView.findViewById(R.id.tv); convertView.setTag(holder); } holder = (ViewHolder) convertView.getTag(); holder.tv.setText(list.get(position)); return convertView; }}static class ViewHolder { TextView tv;}
}
主要功能代码在 setListViewHeight()方法中 注意:在setAdapter之后调用方法
0 0
- 动态设置ListView的高度
- 动态设置listview的高度
- 动态设置listView的高度
- 动态设置listView的高度
- 动态设置listview的高度
- listView 动态设置高度
- 动态设置ListView高度
- 动态设置ListView可以显示的高度
- 动态设置ListView组建的高度
- 由item动态设置listview的高度
- Item高度固定下动态设置ListView的高度
- 【Android】Item高度固定下动态设置ListView的高度
- ListView 动态设置高度问题
- android 动态设置ListView 高度
- ListView 动态设置高度问题
- ListView 动态设置高度问题
- ListView 动态设置高度问题
- ListView+ListView 动态设置Item高度
- c++第二次实验(循环题)
- 加载FeatureLayer之前先加载其他图层
- 四:分享和更新项目
- c++第一次上机作业1-1
- iOS将颜色转换image方法
- 动态设置ListView的高度
- dynamic 遍历
- Scene is unreachable due to lack of entry points and does not have an identifier for runtime access
- 一个关于使用 $month,$dayOfMonth 进行按月/日统计的问题
- 设计模式-中介者模式
- ADP.NET更新ACCESS数据库的小问题
- action中获取HttpServletRequest对象
- 修改 IMX6q 内核超过4M 不可以加载
- 设计模式_工厂方法模式