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

标签 android listview android-listview

我正在根据屏幕方向为我的自定义 ListView 项目设置不同的高度,如下面的代码我监听屏幕方向的变化,并根据它设置一个全局值,当 getView(...) 被调用时在 ListView 项目上,我设置了转换后 View 的高度。

我的问题是,还有比这更好的解决方案吗?

这种方法对 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;
}

最佳答案

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

关于Android:我可以在 getView() 中设置转换后的 View 布局吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30258410/

相关文章:

android - 停止记录 Android Beacon 库

android - ApplicationInfo 与 PackageInfo 与 ResolveInfo

java - 保存多选 ListView 的状态

android - Listview setEmptyView 无法正常工作

不滚动的Android ListView?

java - 混淆 – File f = new File(....); if(f.exists()) {…}

java - ArrayList<String> vs String[],如何以及何时使用?

Android ListView左右滑动接受拒绝

c# - ListView 作为日志文件

java - MongoDB+Azure+Android : Error: com. mongodb.MongoException:不与master对话并且重试用完