在android中自定义可扩展列表

时间:2013-06-20 18:43:25

标签: android

我需要像下面附带的图像一样设计页面。我需要扩展像手风琴这样的两个视图。我g目结舌,但我只能看到可扩展列表视图。任何人都可以建议我如何在一个可扩展窗口中自定义两个视图。

2 个答案:

答案 0 :(得分:0)

如果你只需要扩展2个视图,那么也许你可以使用一个简单的技巧来实现这一点而不需要ExpandableListView。 只需定义LinearLayout导向vertically中每个类别和子类别的布局,默认情况下子类别的可见性为gone

<LinearLayout
   android:id="@+id/category1"
   //....>
</LinearLayout>
<LinearLayout
   android:id="@+id/subcategory1"
   android:visibility="gone"
   //....>
</LinearLayout>

<LinearLayout
   android:id="@+id/category2"
   //....>
</LinearLayout>
<LinearLayout
   android:id="@+id/subcategory2"
   android:visibility="gone"
   //....>
</LinearLayout>

为每个类别设置点击监听器,并在点击类别时更改其可见性:如果visible,则更改为gone;如果是gone则更改为visible

伪鳕鱼将如下所示:

ViewGroup category1 = findViewById(category1);
ViewGroup subcategory1 = findViewById(subcategory1);

category1.setOnClickListener(new OnClickListener(){
    public void onClick(){
        toogle();
    }
});

//......
void toogle(){
  if(subcategory1 is visible){
     subcategory1.visibility = "gone"
  }else{
     subcategory1.visibility = "visible"
  }
}

如果将来需求会发生变化,你必须添加更多类别,那么ExpandableListView可能更有意义,但是现在你可以用这个简单的技巧达到预期的效果。 / p>

答案 1 :(得分:0)

让我们使用SlideExpandableListView库,在这里您可以找到所有细节:here