我正在尝试创建一个带有 4 个按钮的页面。
当我单击一个按钮时,该按钮应保持突出显示状态,其下方应出现一个带有文本的滚动视图,然后按下该按钮下方的按钮(必要时甚至关闭屏幕)。再次单击按钮后,滚动视图将再次隐藏。
如何让滚动视图在单击按钮时隐藏并重新出现?
这就是我想要的样子:http: //img407.imageshack.us/img407/3448/47163794.png
我正在尝试创建一个带有 4 个按钮的页面。
当我单击一个按钮时,该按钮应保持突出显示状态,其下方应出现一个带有文本的滚动视图,然后按下该按钮下方的按钮(必要时甚至关闭屏幕)。再次单击按钮后,滚动视图将再次隐藏。
如何让滚动视图在单击按钮时隐藏并重新出现?
这就是我想要的样子:http: //img407.imageshack.us/img407/3448/47163794.png
这是我最近所做的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 */)
)
}
还有其他可用的适配器,但这是最基本的适配器。
基本上只要看看开发者网站。这个例子也有点帮助,但开发者的网站还有很长的路要走。
如果您有任何问题,请告诉我。
跟进
他把createGroupList()。看起来这是他注释掉的功能。这究竟是在做什么?
他基本上是在该函数中创建List
of并返回创建的对象。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;
}
让我知道这是否有效。