在我的应用程序中,我希望使用适配器显示列表视图。但我想获得列表视图的当前高度和宽度(意味着使用适配器生成列表后)。怎么弄它。任何人都可以帮助我。
感谢
答案 0 :(得分:4)
在getWidth()
中使用ListView的getHeight()
和onWindowFocusChanged
方法获取宽度和高度。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
System.out.println("Width:" + listview.getWidth());
System.out.println("Height:" + listview.getHeight());
}
答案 1 :(得分:2)
要获取任何视图的当前宽度或高度,您需要设置onLayoutChange
侦听器
public class MainActivity extends Activity implements OnLayoutChangeListener {
private View newView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
newView = getLayoutInflater().inflate(R.layout.main_activity, null);
newView.addOnLayoutChangeListener(this);
setContentView(newView);
}
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
//Here you can get size of you ListView, e.g:
mylistView.getWidth();
}
@Override
protected void onDestroy() {
super.onDestroy();
newView.removeOnLayoutChangeListener(this);
}
}
27Nov15 - 这是一个很好的答案,我认为你应该释放资源。这对于一个Activity来说可能并不重要,但是片段可以使用相同的方法,它们可能会更频繁地出现。