2016-08-05 3 views
1

ListViewには、何百ものitemが含まれています。展開可能なレイアウトのリストビュー

ユーザーが項目(onClick)をタップすると、その項目が展開されて詳細が表示されます。

しかし、RelativeLayoutLinearLayoutのようなレイアウトを表示したい。

私は数百のレイアウトを作る必要があると思います。たぶん良い方法がありますか?

商品ごとに異なる説明(価格、国など)があるためです。

私はすでに ExpandbleListView

を知ってる

私は私が展開されたビューは、テーブルビューのように整理することにしたいので、child.add("Android");を使用する必要はありません。

それをクリックすると、レイアウトが展開されて表示されます。

どうすればこの問題を解決できますか?

+0

が重複する可能性 http://stackoverflow.com/questions/12522348/how-can-i-make-a-cell-inを次のように

itemView.setOnClickListener { //.... @Override public void onClick(View v){ // Set 1 to indicate the corresponding is view is expanded expandedItems[position] = 1; notifyDatasetChanged(); } } 

は、今すぐあなたのonBindViewHolderでリストを作成します-a-listview-in-android-expand-and-contract-vertically-wh –

答えて

0

リスト項目ビューの一部としてLinearLayoutまたはRelativeLayoutを作成し、最初にvisibilityfalseに設定します。

グローバルアレイ内で展開されたアイテムを追跡し、リスト内の拡大ビューの適切な可視性を設定します。

わかりやすい疑似コードを共有しています。

// Take a global array to keep track of the expanded items in your list 
// Lets assume the name of your list is myArrayList 
private void int[] expandedItems = new int[myArrayList.size()]; 

// Now initialize your array with all zeros 
for(int i=0; i<expandedItem.length; i++) 
    expandedItems[i] = 0; 

ここでアイテムをクリックすると、expandedItemsアレイの対応する位置を更新します。

if(expandedItems[position] == 1) 
    expandedLinearLayout.setVisibility(View.VISIBLE); 
else 
    expandedLinearLayout.setVisibility(View.GONE); // Don't forget the else part 
関連する問題