ExpandableList查看不扩大 [英] ExpandableList View don't expand
本文介绍了ExpandableList查看不扩大的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图以个性化的ExpandableLisTview
创建
- Iterator.Xml:随着ExpandableList查看
- group.xml:用一个简单的TextView和一个Button 系统相对布局
- Child.xml:只有一个TextView 系统相对布局
类:
包Android.MyExapandableListView;进口android.app.Activity;
进口android.app.ExpandableListActivity;
进口android.os.Bundle;进口android.view.ContextMenu;
进口android.view.LayoutInflater;
进口android.view.MenuItem;
进口android.view.View;
进口android.view.ViewGroup;
进口android.view.ContextMenu.ContextMenuInfo;
进口android.widget.BaseExpandableListAdapter;
进口android.widget.ExpandableListAdapter;
进口android.widget.ExpandableListView;
进口android.widget.TextView;
进口android.widget.Toast;
进口android.widget.ExpandableListView.ExpandableListContextMenuInfo;公共类主要活动扩展{
/ **当第一次创建活动调用。 * /
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.iterator);
ExpandableListView LV =
(ExpandableListView)this.findViewById(R.id.ExpandableListView);
MyExpandableListAdapter问题=新MyExpandableListAdapter();
lv.setAdapter(问题); } 公共类MyExpandableListAdapter扩展BaseExpandableListAdapter {
私人LayoutInflater吹气= NULL;
私有String [] =组{人名,狗名,名猫
鱼名};
私有String [] [] =儿童{{阿诺德,巴里,查,大卫},
{王牌,强盗,双查,平分},{蓬松,的Snuggles},
{戈尔迪,泡}}; 公共MyExpandableListAdapter(){
this.inflater = main.this.getLayoutInflater();
} 公共对象getChild(INT groupPosition,诠释childPosition){
返回儿[groupPosition] [childPosition];
} 众长getChildId(INT groupPosition,诠释childPosition){
返回childPosition;
} 公众诠释getChildrenCount(INT groupPosition){
返回儿[groupPosition]。长度;
} 公共对象getGroup(INT groupPosition){
返回组[groupPosition]
} 公众诠释getGroupCount(){
返回groups.length;
} 众长getGroupId(INT groupPosition){
返回groupPosition;
} 公共查看getChildView(INT groupPosition,诠释childPosition,
布尔isLastChild,查看convertView,父母的ViewGroup){
convertView = inflater.inflate(R.layout.child,NULL);
TextView的问题=(TextView中)convertView.findViewById(R.id.nomChild);
question.setText(getChild(groupPosition,childPosition)的ToString());
返回convertView;
} 公共查看getGroupView(INT groupPosition,布尔isExpanded,
查看convertView,父母的ViewGroup){
// TextView中的TextView = getGenericView();
// textView.setText(getGroup(groupPosition)的ToString());
convertView = inflater.inflate(R.layout.group,NULL);
TextView的问题=(TextView中)convertView.findViewById(R.id.nomGroup);
question.setText(getGroup(groupPosition)的ToString());
返回convertView;
} 公共布尔isChildSelectable(INT groupPosition,诠释childPosition){
返回true;
} 公共布尔hasStableIds(){
返回true;
}
}
}
问题是,我可以得到正确的物品,但是当我试图展开组,这是行不通的。
任何想法?
编辑:意见
Iterator.XML
<?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
>
< ExpandableListView
机器人:ID =@ + ID / ExpandableListView
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_gravity =center_vertical
>
< / ExpandableListView>< / LinearLayout中>
Group.XML
<?XML版本=1.0编码=UTF-8&GT?;
< AbsoluteLayout
机器人:ID =@ + ID / widget0
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
的xmlns:机器人=http://schemas.android.com/apk/res/android
>
< RelativeLayout的
机器人:ID =@ + ID / widget29
机器人:layout_width =305px
机器人:layout_height =41px
机器人:layout_x =8像素
机器人:layout_y =29px>
<的TextView
机器人:ID =@ + ID / nomGroup
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=TextView的
机器人:layout_centerVertical =真
机器人:layout_centerHorizontal =真
>
< / TextView的>
<按钮
机器人:ID =@ + ID / widget31
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=按钮
机器人:layout_alignParentTop =真
机器人:layout_alignParentRight =真
>
< /按钮>
< / RelativeLayout的>
< / AbsoluteLayout>
Child.XML
<?XML版本=1.0编码=UTF-8&GT?;
< AbsoluteLayout
机器人:ID =@ + ID / widget0
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
的xmlns:机器人=http://schemas.android.com/apk/res/android
>
< RelativeLayout的
机器人:ID =@ + ID / nomChild
机器人:layout_width =305px
机器人:layout_height =41px
机器人:layout_x =8像素
机器人:layout_y =29px
>
<的TextView
机器人:ID =@ + ID / widget30
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=TextView的
机器人:layout_centerVertical =真
机器人:layout_centerHorizontal =真
>
< / TextView的>
< / RelativeLayout的>
< / AbsoluteLayout>
解决方案
你加入机器人:可聚焦=FALSE
来你的按钮定义是什么?这解决了类似的行为我。
<按钮
机器人:ID =@ + ID / widget31
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=按钮
机器人:可聚焦=假
机器人:layout_alignParentTop =真
机器人:layout_alignParentRight =真正的>
< /按钮>
I'm trying to personalize an ExpandableLisTview
I create
- Iterator.Xml: with The ExpandableList View
- group.xml:A relative Layout with a simple TextView and a Button
- Child.xml:A relative layout with just a textView
Class:
package Android.MyExapandableListView;
import android.app.Activity;
import android.app.ExpandableListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
public class main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iterator);
ExpandableListView lv =
(ExpandableListView) this.findViewById(R.id.ExpandableListView);
MyExpandableListAdapter questions = new MyExpandableListAdapter();
lv.setAdapter(questions);
}
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
private LayoutInflater inflater = null;
private String[] groups = { "People Names", "Dog Names", "Cat Names",
"Fish Names" };
private String[][] children = { { "Arnold", "Barry", "Chuck", "David" },
{ "Ace", "Bandit", "Cha-Cha", "Deuce" }, { "Fluffy", "Snuggles" },
{ "Goldy", "Bubbles" } };
public MyExpandableListAdapter(){
this.inflater = main.this.getLayoutInflater();
}
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}
public int getGroupCount() {
return groups.length;
}
public long getGroupId(int groupPosition) {
return groupPosition;
}
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.child, null);
TextView question = (TextView) convertView.findViewById(R.id.nomChild);
question.setText(getChild(groupPosition, childPosition).toString());
return convertView;
}
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TextView textView = getGenericView();
// textView.setText(getGroup(groupPosition).toString());
convertView = inflater.inflate(R.layout.group, null);
TextView question = (TextView) convertView.findViewById(R.id.nomGroup);
question.setText(getGroup(groupPosition).toString());
return convertView;
}
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public boolean hasStableIds() {
return true;
}
}
}
The problem is that I can get the items correctly but when I'm trying to expand the group,it doesn't work.
Any idea?
EDIT: the views
Iterator.XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ExpandableListView
android:id="@+id/ExpandableListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
>
</ExpandableListView>
</LinearLayout>
Group.XML
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<RelativeLayout
android:id="@+id/widget29"
android:layout_width="305px"
android:layout_height="41px"
android:layout_x="8px"
android:layout_y="29px">
<TextView
android:id="@+id/nomGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
>
</TextView>
<Button
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
>
</Button>
</RelativeLayout>
</AbsoluteLayout>
Child.XML
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<RelativeLayout
android:id="@+id/nomChild"
android:layout_width="305px"
android:layout_height="41px"
android:layout_x="8px"
android:layout_y="29px"
>
<TextView
android:id="@+id/widget30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
>
</TextView>
</RelativeLayout>
</AbsoluteLayout>
解决方案
have you added android:focusable="false"
to your button definition? this solved a similar behaviour for me.
<Button
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:focusable="false"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true">
</Button>
这篇关于ExpandableList查看不扩大的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文