import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
/**
* 点击自动扩张列表高度
* @author zhaocheng
*/
public class MarkListView extends ListView implements AdapterView.OnItemClickListener {
private final String TAG = "MarkListView";
private boolean isWrapHeight = false;
/**
* 列表变化的高度
*/
private int HEIGHT;
public MarkListView(Context context) {
this(context, null);
}
public MarkListView(Context context, AttributeSet attrs) {
super(context, attrs);
setOnItemClickListener(this);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
if (HEIGHT == 0) {
HEIGHT = h * 2;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (isWrapHeight) {
wrapHeight(false);
} else {
wrapHeight(true);
}
}
/**
* 扩展列表高度
* @param wrap
*/
public void wrapHeight(boolean wrap) {
if (isWrapHeight != wrap) {
ViewGroup.LayoutParams lp = getLayoutParams();
if (wrap) {
lp.height += HEIGHT;
} else {
lp.height -= HEIGHT;
}
setLayoutParams(lp);
isWrapHeight = wrap;
}
}
}
点击自动扩张列表高度
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 最近公司有了微信小程序需求,由于没有前端,被抓来做壮丁,原本是做java后端的,所以有何不妥知错敬请谅解,闲...
- 第一组:姚成栋 关于排序 有两种排序的方式:前端js,后台LINQ js: JavaScript实现多维数组、对...
- IDE制作的ui文件: 部分代码: 效果图: 理想效果:切换左边的列表,进行切换右边的列表数据实际效果:点击页面完...