-1

我的应用程序具有线性布局的屏幕,其中显示了我的所有控件(复选框、单选按钮、下拉列表等)。当我们显示屏幕时,它会加载所有控件(1000 个控件)并显示它。它需要更多时间来加载和显示所有控件。所以代替这个,是否可以在屏幕上只显示 10 个控件,当我们向下滚动时,另外 10 个控件被动态加载并显示在屏幕上。

我正在使用线性布局,我不想使用列表视图。

编辑

我不能使用列表视图,因为我的所有控件都不是单行。例如复选框控件作为第 1 行,日期显示在第 2 行,单选按钮或编辑文本作为第 3 行等。这些所有控件都来自服务器动态。所以在这里我不能像你建议的那样使用列表视图。

4

3 回答 3

1

您的编辑论点是错误的。行是一个逻辑单元,而不是预定义的东西。您在行内放置的内容,甚至超过您的控制权,完全取决于您。

您确实需要使用 ListView 并动态更改您在行中显示的内容。就像你说的:在第 1 行你放了一个复选框,第 2 行得到一个日期显示,第 3 行有两个像 TextView 和开/关切换的想法。由您决定,但要认真地构建:使用 ListView!

除此之外:这样的用户体验会很糟糕,并且是“不要”列表的完美示例。以某种方式构建来自服务器的控件。每个设置屏幕都有一些类别,如“声音”、“视频”、“通知”……让您的控件也一样!我真的怀疑您无法以某种方式对您获得的控件进行分类。

你应该努力防止用户体验灾难......

于 2013-03-15T16:05:59.673 回答
0

当然可以,但是您将只是实现诸如延迟加载之类的事情,并最终得到一个调整后的 LinearLayout,它可以根据您的滚动位置滚动和加载您的数据。为了做得好,您将创建一些单独的类,您可以将其称为 Adapter 并为您处理加载。

然后你意识到你创建了一个糟糕的 ListView 版本。

于 2013-03-12T09:33:24.293 回答
0

我认为在容器中动态加载不同类型视图的最优雅的解决方案是使用某种可以扩展的容器AdapterView。这样您就可以实现一个Adapter可以创建您需要的所有视图的方法。这是一种非常有效的方法,因为它重用了滚动超出边界的视图,而不是创建它需要的每个视图。

在我的代码中,我使用了一个可以扩展的容器,AdapterView<ListAdapter>并且效果很好。

于 2013-03-12T09:37:23.707 回答