Android:父组中带有按钮的可扩展列表
我正在尝试创建一个可扩展的列表视图,其中父组上有一个按钮,按下该按钮后,用户可以将项目添加到子组中。但是,添加按钮时出现问题,父下拉子列表功能停止工作。(理想情况下,单击按钮会添加一个元素,单击其他任何位置会导致菜单下拉) 我复制了一个可扩展的列表模板,并在尝试其他操作之前使其工作Android:父组中带有按钮的可扩展列表,android,button,customization,expandablelistview,expandablelistadapter,Android,Button,Customization,Expandablelistview,Expandablelistadapter,我正在尝试创建一个可扩展的列表视图,其中父组上有一个按钮,按下该按钮后,用户可以将项目添加到子组中。但是,添加按钮时出现问题,父下拉子列表功能停止工作。(理想情况下,单击按钮会添加一个元素,单击其他任何位置会导致菜单下拉) 我复制了一个可扩展的列表模板,并在尝试其他操作之前使其工作 <!--?xml version="1.0" encoding="utf-8"?--> <LinearLayout android:id="@+id/groupname" xmlns:androi
<!--?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>
提前谢谢。我也遇到了同样的问题,最后当我按下按钮(在您的情况下,addPhrase,as not focusable)时,它就工作了 以下是我在ExpandableListAdapter的getGroupView中的代码:
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, final ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_pathologies_header, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListPathologiesHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
lblListHeader.setCompoundDrawablePadding(30);
lblListHeader.setPadding(20, 0, 0, 0);
lblListHeader.setCompoundDrawablesWithIntrinsicBounds(isExpanded ? R.drawable.up50 : R.drawable.down50, 0, 0, 0);
FloatingActionButton fabDrug = (FloatingActionButton) convertView.findViewById(R.id.fab_drug);
fabDrug.setFocusable(false);
if (isExpanded) {
fabDrug.setVisibility(View.VISIBLE);
fabDrug.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NewDrugDialogFragment newFragment = NewDrugDialogFragment.newInstance(_patientId);
newFragment.show(((Activity) _context).getFragmentManager(), "Title");
}
});
} else {
fabDrug.setVisibility(View.GONE);
}
return convertView;
}
它工作得很好,现在组按应该的方式折叠和扩展。我也遇到了这个问题:只要我在父组中添加一个按钮,折叠/扩展功能就会停止工作。我还不知道为什么,但很高兴知道这种情况有一定的一致性!下面是一个解释:“当我设置这些按钮时。”widgets[组项的子项]到不可单击和不可聚焦单击我的组项通常执行[展开/折叠]…如果有人有类似问题,请记住检查组项中的任何视图是否可单击或可聚焦,并将其设置为android:clickable=“false”android:focusable=“false”"可能重复
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, final ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_pathologies_header, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListPathologiesHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
lblListHeader.setCompoundDrawablePadding(30);
lblListHeader.setPadding(20, 0, 0, 0);
lblListHeader.setCompoundDrawablesWithIntrinsicBounds(isExpanded ? R.drawable.up50 : R.drawable.down50, 0, 0, 0);
FloatingActionButton fabDrug = (FloatingActionButton) convertView.findViewById(R.id.fab_drug);
fabDrug.setFocusable(false);
if (isExpanded) {
fabDrug.setVisibility(View.VISIBLE);
fabDrug.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NewDrugDialogFragment newFragment = NewDrugDialogFragment.newInstance(_patientId);
newFragment.show(((Activity) _context).getFragmentManager(), "Title");
}
});
} else {
fabDrug.setVisibility(View.GONE);
}
return convertView;
}