需求:activity中 左右个一个listview ,现在需要设置其背景高度一致
实现:1. 因为内容不定,无法确定是哪一个listView 更高一点,所以无法通过布局实现
2. 代码中动态设置高度 :
初想通过list view 的 Adapter 获取listview高度,然后对比 两个listview 手动设置低的那个高度
问题:item中只有一个 textview 但,每个textview 的行数不定,通过adapter获取的高度,只是一行的高度 ,所以该方法 不适用
最终:通过view 的post方法
left_list.post(new Runnable() { @Override public void run() { left_height = left_list.getHeight(); setHeight(); } });
right_list.post(new Runnable() { @Override public void run() { right_height = right_list.getHeight(); setHeight(); } });
private void setHeight(){ if(right_height == -1 || left_height == -1){ return; } //通过判断是哪个list高度更高,然后进行动态设置 if(left_height>right_height){ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) right_list.getLayoutParams(); params.height = left_height; right_list.setLayoutParams(params); }else if(left_height<right_height){ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) left_list.getLayoutParams(); params.height = right_height; left_list.setLayoutParams(params); } }