较大的UI布局会降低性能

时间:2018-11-20 09:45:23

标签: android android-linearlayout android-constraintlayout

一开始我有一个活动,上面有一些字段。随着时间的流逝,布局变得太大,所以现在我需要对其进行重构。

当前在三星Galaxy S8上显示活动需要2秒钟,而在较旧的设备上,此数字为4-5秒钟,这很糟糕。

有人对我有提示,我应该在哪里开始重构?我本来打算将底部放在一个recyclerview中,但各行却大不相同,而且全部内容必须是可滚动的(加上图像有HorizontalScrollView)。我正在使用Glide加载图像。

布局文件:layout xml

屏幕截图:screenshot from actual screen

Update1:​​

也许某种动态数据加载可以帮助我吗?例如,在用户界面膨胀后显示“空”片段,然后从上到下将字段区分为空白。

1 个答案:

答案 0 :(得分:0)

我选择了AsyncLayoutInflater,到目前为止,这似乎是解决我的问题的不错选择。

示例代码:

AsyncLayoutInflater asyncLayoutInflater = new AsyncLayoutInflater(getContext());
asyncLayoutInflater.inflate(R.layout.fragment_lake_more_data, mLakeDataContainer, new AsyncLayoutInflater.OnInflateFinishedListener() {

    @Override
    public void onInflateFinished(@NonNull View view, int resid, ViewGroup parent) {
        // set UI elements with data
        // ...

        parent.addView(view);
    }

}
});