Android:我可以在getView()中设置转换后的视图布局

时间:2015-05-15 11:30:21

标签: android listview android-listview

我根据屏幕方向为我的自定义列表视图项设置了不同的高度,并在下面的代码中我听取屏幕方向更改,并根据它设置全局值,以及何时调用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;
}

1 个答案:

答案 0 :(得分:4)

如果在纵向/横向模式下只需要不同的项目视图,则可以在layout-land和layout-port文件夹中创建不同的布局