2015-02-11 65 views
2

我有它的一些文本列表視圖這樣點擊後展開列表項,以一個新的觀點

this

,我想擴大每個項目喜歡這個

this

我已經看到了這個答案(How can I make a cell in a ListView in Android expand and contract vertically when it's touched?),在這裏它不會更改爲新視圖,而只是改變高度。

UPDATE:list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/container1" 
android:layout_width="match_parent" 
android:layout_height="100dp" 
android:clickable="true" 
android:background="@drawable/list_selected"> 

<RelativeLayout 

    android:id="@+id/relaboveline1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <View 
     android:id="@+id/sidebar" 
     android:layout_width="15dp" 
     android:layout_height="match_parent" 
     android:background="#4ED6CA" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingTop="5dp" 
     android:paddingBottom="5dp" 
     android:weightSum="100" 
     android:layout_toRightOf="@+id/sidebar" 
     android:layout_toEndOf="@+id/sidebar"> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="20"> 

      <RelativeLayout 
       android:id="@+id/cal" 
       android:layout_width="60dp" 
       android:layout_height="match_parent"> 

       <TextView 
        android:id="@+id/date" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="22" 
        android:textColor="#FF8801" 
        android:textStyle="bold" 
        android:layout_centerHorizontal="true" 
        android:textSize="35sp" 
        android:layout_alignParentTop="true" /> 


       <TextView 
        android:id="@+id/month" 
        android:textColor="#FF8801" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" 
        android:layout_below="@+id/date" 
        android:textSize="20sp" 
        android:text="MAY" /> 

       <TextView 
        android:id="@+id/year" 
        android:textColor="#FF8801" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" 
        android:layout_below="@+id/month" 
        android:textSize="20sp" 
        android:text="2015" /> 
      </RelativeLayout> 

      <View 
       android:id="@+id/divider" 
       android:layout_width="1dp" 
       android:layout_height="match_parent" 
       android:layout_toRightOf="@+id/cal" 
       android:layout_toEndOf="@+id/cal" 
       android:background="#DADADA" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="60"> 

      <RelativeLayout 
       android:id="@+id/content" 

       android:layout_width="200dp" 
       android:paddingTop="5dp" 

       android:paddingLeft="8dp" 
       android:layout_height="match_parent"> 

       <TextView 
        android:id="@+id/title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="18sp" 
        android:textStyle="bold" 
        android:text="High School Graduation" /> 

       <TextView 
        android:id="@+id/contentdesc" 
        android:layout_width="wrap_content" 
        android:layout_marginTop="10dp" 

        android:layout_height="wrap_content" 
        android:layout_below="@+id/title" 
        android:text="@string/dummy" /> 
      </RelativeLayout> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="20"> 

      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:paddingTop="10dp" 
       > 

       <TextView 

        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="18sp" 
        android:layout_centerHorizontal="true" 
        android:textStyle="bold" 

        android:text="5B" 
        android:id="@+id/classDiv" /> 

       <RelativeLayout 
        android:layout_below="@+id/classDiv" 
        android:layout_width="40dp" 
        android:layout_height="40dp" 
        android:layout_centerHorizontal="true"> 

        <ImageView 
         android:layout_width="20dp" 
         android:layout_height="20dp" 
         android:layout_centerInParent="true" 
         android:src="@drawable/star_yellow" /> 
       </RelativeLayout> 
      </RelativeLayout> 
     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 

<View 
    android:id="@+id/line2" 
    android:layout_width="match_parent" 
    android:layout_height="0.5dp" 
    android:layout_below="@+id/relaboveline1" 
    android:background="#DADADA" /> 

+0

'這裏不是改變一個新的觀點, '不,但在你提到的例子中只有一個TextView。我認爲你有更多的項目。那麼你是如何修改代碼的?請顯示您的列表項目佈局xml。 – greenapps 2015-02-11 11:03:50

+0

更新list_item – 2015-02-11 12:40:17

+0

請回答我的意見/問題。請告訴xml中您想要使哪些佈局可見/不可見。 (將其作爲評論寫在塊中)。 – greenapps 2015-02-11 12:51:48

回答

2

你試過ExpandableListView每個羣組視圖只有一個孩子的看法?那麼您可以根據需要展開和摺疊行。

4

您可以使用ExpandableListView:

  1. 您的孩子定義自定義佈局(詳細信息,當你點擊行)
  2. 您定義public class ExpandableAdapter extends BaseExpandableListAdapter

  3. 覆蓋的方法

    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { .... }

    您在哪裏實現您的詳細布局(子佈局)。

  4. 覆蓋您實現像ListView的佈局方法

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { ... }

  5. 設置自定義適配器在ExpandableListView實例

如果你想有更多的信息在我的帖子給看看這裏http://www.survivingwithandroid.com/2013/01/android-expandablelistview-baseexpandablelistadapter.html