【发布时间】:2012-09-11 06:02:05
【问题描述】:
我正在尝试制作一个可展开的列表视图,其中父组上有一个按钮,当按下该按钮时,用户可以将项目添加到子组。但是我在添加按钮时遇到问题,父下拉子列表功能停止工作。 (理想情况下,单击按钮会添加一个元素,单击其他任何位置会导致菜单下拉) 我复制了一个可扩展的列表模板,并在尝试其他任何东西之前让它工作。
<!--?xml version="1.0" encoding="utf-8"?-->
<LinearLayout android:id="@+id/groupname"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dip">
<TextView android:id="@+id/tvGroupName"
android:layout_width="225dp"
android:layout_height="40dip"
android:textSize="16sp"
android:textStyle="bold"
android:paddingLeft="30dip"
android:gravity="center_vertical">
</TextView>
<Button
android:id="@+id/addPhrase"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+" />
</LinearLayout>
这就是父组的 xml(我都改变了)。
设置展开器和折叠器的 onCreate 方法。 (组和儿童已预先填充)
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Drawable d = getResources().getDrawable(R.drawable.group_indicator);
expList = getExpandableListView();
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
width = metrics.widthPixels;
//this code for adjusting the group indicator into right side of the view
expList.setIndicatorBounds(width - GetDipsFromPixel(50), width - GetDipsFromPixel(10));
expList.setGroupIndicator(d);
expList.setAdapter(new ExpAdapter(this));
expList.setOnGroupExpandListener(new OnGroupExpandListener()
{
@Override
public void onGroupExpand(int groupPosition)
{
Log.e("onGroupExpand", "OK");
}
});
expList.setOnGroupCollapseListener(new OnGroupCollapseListener()
{
@Override
public void onGroupCollapse(int groupPosition)
{
Log.e("onGroupCollapse", "OK");
}
});
expList.setOnChildClickListener(new OnChildClickListener()
{
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Log.e("OnChildClickListener", "OK");
return false;
}
});
}
提前致谢。
【问题讨论】:
-
我也遇到过这个问题:一旦我向父组添加一个按钮,折叠/展开功能就会停止工作。我还不能弄清楚为什么,但很高兴知道这种情况的发生有一定的一致性!
-
这里是一个解释:stackoverflow.com/a/12818331/423105 '当我将这些小部件 [组项的子项] 设置为不可点击和不可聚焦时,我的组项上的点击会正常执行 [展开/折叠]。 ...如果有人有类似的问题,请记住检查您的组项目中的任何视图是否可点击或可聚焦并将它们设置为 android:clickable="false" android:focusable="false"'
标签: android button customization expandablelistview expandablelistadapter