2013-03-12 146 views
-1

我的应用程序具有线性布局的屏幕,其中显示我的所有控件(复选框,单选按钮,下拉列表等)。当我们显示屏幕时,它会加载所有控件(1000个控件)并显示它。它花费更多时间加载并显示所有控件。因此,可以在屏幕上只显示10个控件,而当我们向下滚动时,另外10个控件会动态加载并显示在屏幕上。LinearLayout - 滚动时动态添加内容

我使用线性布局,我不想使用listview。

编辑

我不能使用列表视图,因为我所有的控件在单排都没有。例如复选框控件为row1,日期显示在row2,单选按钮或编辑文本为row3等。这些所有控件都是动态来自服务器的。所以在这里,我不能使用你建议的列表视图。

+0

1000个控件的列表?听起来你应该考虑对布局/ UI设计进行完全重构......你真的期望有人滚动990控件来访问最后一个?创建子类别并创建导航UI ... – WarrenFaith 2013-03-12 09:39:54

+0

你好我的朋友,这不是开发任何UI的方法。请向我们提供您的应用程序用户界面设计应用程序和应用程序的视图。 – AppleDroid 2013-03-12 09:52:23

回答

0

当然,但您只需要执行延迟加载等操作,并最终得到一个调整后的LinearLayout,它可以根据滚动位置滚动和加载数据。 为了做到这一点,你会创建一些独立的类,你可以调用一个适配器,它将处理你的加载。

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

+0

关于这个问题的任何想法 – mindus 2013-03-13 04:02:01

0

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

在我的代码中,我使用了一个扩展为AdapterView<ListAdapter>的容器,它工作得很好。

1

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

您确实需要使用ListView并动态更改您在行中显示的内容。就像你说的那样:在第1行中放置一个复选框,第2行获取日期显示,第3行有两个像TextView和On/Off切换的想法。这是由你来做,但严重的建设:使用ListView!

除此之外:这将是一个糟糕的UX和一个“不要”列表的完美例子。以某种方式构建来自服务器的控件。每个设置屏幕都有一些类别,比如“声音”,“视频”,“通知”...对您的控件进行相同操作!我真的怀疑你不能以某种方式对你得到的控件进行分类。

您应该努力防止UX灾难......