我根据屏幕方向为我的自定义列表视图项设置了不同的高度,并在下面的代码中我听取屏幕方向更改,并根据它设置全局值,以及何时调用getView(...)在listview项目上我设置了转换后视图的高度。
我的问题是,有没有比这更好的解决方案?
这种方法对UI加载速度过程有多糟糕?
我的目标是API14 +
这里添加了P.S :( 200& 300)作为示例,它们在运行时没有固定,它们在运行时根据屏幕dpi进行更改。int mConvertViewHeight;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
mConvertViewHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200, getResources().getDisplayMetrics());
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
mConvertViewHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300, getResources().getDisplayMetrics());
}
}
在我的listview自定义数组适配器
中@Override
public View getView(final int aConvertViewPosition, View aConvertView, ViewGroup parent)
{
mParams = aConvertView.getLayoutParams();
mParams.height = mMainActivity.mConvertViewHeight;
}
答案 0 :(得分:4)
如果在纵向/横向模式下只需要不同的项目视图,则可以在layout-land和layout-port文件夹中创建不同的布局