我正在尝试为导航抽屉菜单实现可扩展列表视图。我想知道是否有办法使它只有菜单中的一个项目可以扩展?例如,打开导航抽屉菜单将产生
一个
乙
ç
- > C1
- > C2
- > C3
d
所以,C将是唯一的一组,而A,B和D只是一些没有孩子的单项。有人对此有任何了解吗?
答案 0 :(得分:0)
你可以做到这一点。只是将孩子映射到只有“C”,即c1,c2等。 并替换
@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
}
这在ExpandableListAdapter with
中 @Override
public int getChildrenCount(int groupPosition) {
try {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
} catch (NullPointerException e) {
e.printStackTrace();
return 0;
}
}
这将返回A,B,D等的0子计数。
答案 1 :(得分:0)
获得设计的另一种方法是在导航抽屉菜单中使用布局,在此布局中,将ExpandListView
与一个元素放在一起。而且,如果您想这样做,请按照以下两个步骤进行操作:
第1步:设计布局:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="220dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start"
android:choiceMode="singleChoice">
<!-- you can put other views, I put a textview here -->
<TextView
android:id="@+id/tv_test"
android:text="New Test"
android:layout_width="210dp"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
第2步:java代码:
DrawerLayout mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
TextView tv_test = (TextView )findViewById(R.id.tv_test);
tv_test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDrawerLayout.closeDrawer(linearLayout);//don't forget it
mDrawerLayout.postDelayed(new Runnable() {
@Override
public void run() {
//action
}
}
}
});