2015-09-15 85 views
-2

我在我的項目中使用了GridView,並且包含了ViewHolder。
現在,客戶希望使用ExpandableListView顯示數據,因爲他只想顯示標題,而用戶單擊標題時會顯示其下面的子項。如何將GridView轉換爲ExpandableListView

  • 有沒有現成的經驗,我想知道是否有可能從GridView控件更改爲代碼很容易ExpandableListView。
    請注意,我也在網格中包含文本搜索。如果我切換到ExpandableListView,這仍然可用嗎?
  • 如果以上是可能的,任何人都可以幫助我如何實現它。

網格行XML是如下

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:paddingLeft="8dip" 
    android:paddingRight="4dip"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:layout_weight="0.8"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="#FFFFFF" 
       android:typeface="sans" 
       android:textSize="13sp" 
       android:textStyle="bold" 
       android:id="@+id/placeName"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="#88FFFFFF" 
       android:typeface="sans" 
       android:textSize="13sp" 
       android:textStyle="bold" 
       android:id="@+id/theme"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"     
       android:textStyle="bold" 
       android:id="@+id/Title"/> 

      <TextView 
       android:id="@+id/Details" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="1dip" 
       /> 

      <TextView 
       android:id="@+id/scheduleDays" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="bottom" 
       android:layout_gravity="bottom" 
       android:layout_marginRight="5dip" 
       android:layout_marginTop="7dip"     
       android:text="Family, Friends, Relatives, Grand-Parents"     
       android:textStyle="bold"/> 

      <TextView 
       android:id="@+id/Date" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="bottom" 
       android:layout_gravity="right" 
       android:layout_marginRight="5dip" 
       /> 

     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/rightLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:orientation="vertical" 
      android:minWidth="60dp" 
      android:layout_weight="0.2"> 

      <ImageView 
       android:id="@+id/starButton" 
       android:layout_width="40dp" 
       android:layout_gravity="right" 
       android:layout_marginRight="5dip" 
       android:layout_height="40dp" 
       android:background="#00FFFFFF" 
       android:src="@drawable/Favourite"/> 

<ImageView 
       android:id="@+id/showMeButton" 
       android:layout_width="40dp" 
       android:layout_gravity="right" 
       android:layout_marginRight="15dip" 
       android:src="@drawable/showMe"/> 
      </LinearLayout> 

    </LinearLayout> 

    <View 
    android:id="@+id/separator" 
    android:layout_marginTop="5dip" 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="#33000000" /> 

</LinearLayout> 

隨着ListView中,我要顯示地名,收藏夾按鈕和SHOWME按鈕頭,其餘的孩子。

+2

集'爲numColumns = 1'財產在xml –

+0

@rajanks,numcolumns已經是1,但是,我需要隱藏子數據,numColumns = 1,頭和子數據都顯示。我希望它的行爲與ExpandableListView完全一樣。沒有什麼像標題 - 孩子做numColumns時= 1 – user4657208

回答

0

您可以將Expandable ListView集成到佈局中,例如LinearLayout。 爲此更改活動的layout.xml中的佈局類型

要將數據發送到ListView,您需要使用BaseExpandableListAdapter將內容拉出陣列或數據庫。

例爲layout.xml

<LinearLayout .... > 

    <ExpandableListView 
    .... > 
    </ExpandableListView> 

</LinearLayout> 
0

你能證明你的XML文件。可以實現的方式很多。

  • 樣改變從網格佈局佈局容器線性佈局

在適配器

和設置您的視圖中的onCreate

recycler.setHasFixedSize(true); 
    final LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); 
    recycler.setLayoutManager(layoutManager); 
    adapter = new Adapter(getActivity()); 
    recycler.setAdapter(adapter); 
+0

@ abhishek請參閱xml代碼 – user4657208

+0

首先你說gird線性,現在你說可擴展列表視圖。 – abhishek

+0

問題是如何將GridView轉換爲ExpandableListView? – user4657208

相關問題