我正在尝试创建一个包含4个按钮的页面。
当我单击一个按钮时,该按钮应保持高亮显示,其下方应显示带有文本的滚动视图,并按下该按钮下方的按钮(如果需要,甚至可以关闭屏幕)。重新点击按钮后,滚动视图将再次隐藏。
如何在单击按钮时隐藏和重新显示滚动视图?
这就是我想要的样子:http://img407.imageshack.us/img407/3448/47163794.png
答案 0 :(得分:1)
以下是我最近使用ExpandableListView
所做的事情。这很容易。
它拥有迄今为止我在android中见过的最大的构造函数之一。
使用ExpandableListView
创建布局。
<LinearLayout>
<ExpandableListView>
<!-- Set the properties, if you need to see them, let me know. -->
</ExpandableListView>
</LinearLayout>
现在在某些视图中使用布局。
public void onCreate() {
ExpandableListView example = findViewById(/* The id of the expandable list view */);
example.setAdapter(
new SimpleExpandableListAdapter(
/* the context */,
/* the map of parents/groups */,
/* the layout to map the parents/groups to */,
/* the key to search for in the parents/groups map */,
/* the id of the textview inside the layout to map the parent/group to */,
/* the map of children */,
/* the layout to map the children to */,
/* the key to search for in the children map */,
/* the id of the textview inside the layout to map the children to */)
)
}
还有其他适配器可用,但这是最基本的适配器。
基本上只需看看developer website即可。这个example也有些帮助,但开发人员的网站还有很长的路要走。
如果您有任何问题,请告诉我。
关注
他把createGroupList()。看起来这是他评论的一个功能 出。这到底是做什么的?
他基本上是在该函数中创建List
HashMaps
并返回创建的对象。是的,你应该这样做,它有助于保持你的代码更清洁。
此外,这些列表显示非常小,无论如何要使它们更大?
修改您显示孩子和群组的TextView
。在View
布局中向其xml
添加填充。只需调整dp
即可。您可以增加textSize
,也可以添加style
,如下所示。
<TextView
android:id="@+id/groupTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@android:style/TextAppearance.Medium"
android:paddingLeft="50dp"
android:paddingTop="25dp"
android:paddingBottom="25dp"/>
我希望父组成为列表,但不希望子组成为 作为子列表,我希望它们是一个文本框,我可以添加文本(我 从网上抓起来)。我如何制作儿童文本框而不是 列表。
您可能需要为此情况创建自己的Adapter
。您需要扩展BaseExpandableListAdapter
。我可能错了,可能有一种更简单的方式......但我不知道一个。
其他后续行动
不确定你的意思。输入到子列表中的文本 来自这行代码:child.put(“Sub Item”,“test”)。我可以 把我想要的文字放在“测试”的地方但是“测试”出现了 每个父母名单。
您的createChildList
需要返回List<ArrayList<HashMap<String, String>>>
。
您的createChildList
应该是这样的:
private List<ArrayList<HashMap<String, String>>> createChildList(int maxValue) {
ArrayList<ArrayList<HashMap<String, String>>> groupList =
new ArrayList<ArrayList<HashMap<String, String>>>();
for (int i = 0; i <= maxValue; i++) {
ArrayList<HashMap<String, String>> childList =
new ArrayList<HashMap<String, String>>();
for (int j = 0; j <= maxValue; j++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("Sub Item", "test: " + String.valueOf(j));
childList.add(map);
}
groupList.add(childList);
}
return groupList;
}
如果有效,请告诉我。