2013-03-12 143 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災難......