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