对于每个父视图,我的TableLayout不会膨胀一次。相反,TableLayout根本没有为第一个父级膨胀,为第二个父级膨胀一次,并为第三个父级膨胀两次。
有关为什么Tablelayout不会为每个父视图充气一次的任何想法?
主要类
package com.example.jbunn.gi;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
public class LeaderBoard extends Activity {
ExpandableListView exv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leader_board);
exv = (ExpandableListView)findViewById(R.id.expandableListView);
exv.setAdapter(new MyAdapter(this));
}
}
MyAdapter类
package com.example.jbunn.gi;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.TableLayout;
import android.widget.TextView;
public class MyAdapter extends BaseExpandableListAdapter{
private Context context;
private LayoutInflater mLi;
String [] parentList = {"James", "Matt", "Rhodus"};
public MyAdapter(Context context, LayoutInflater layoutInflater) {
mContext = context;
mLi = (LayoutInflater)context.getApplicationContext().getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
}
static class ViewHolderItem {
TableLayout tl;
}
@Override
public int getGroupCount() {
return parentList.length;
}
@Override
public int getChildrenCount(int i) {
return i;
}
@Override
public Object getGroup(int i) {
return i;
}
@Override
public Object getChild(int i, int i2) {
return null;
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i2) {
return 0;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
TextView tv = new EditText(context);
tv.setText(parentList[i]);
tv.setPadding(50,0,0,0);
return tv;
}
@Override
public View getChildView(int i, int i2, boolean b, View convertView, ViewGroup parent) {
ViewHolderItem viewHolder;
if(convertView ==null){
// inflate the layout
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
convertView = inflater.inflate(R.layout.childgridview, parent, false);
// well set up the ViewHolder
viewHolder = new ViewHolderItem();
viewHolder.tl = (TableLayout) convertView.findViewById(R.id.childgridview);
// store the holder with the view.
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolderItem) convertView.getTag();
}
return convertView;
}
@Override
public boolean isChildSelectable(int i, int i2) {
return false;
}
}
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/childgridview">
<TableRow>
<TextView
android:id="@+id/one"
android:text="1"
android:padding="10dp"/>
<TextView
android:id="@+id/two"
android:text="2"
android:padding="10dp"/>
<TextView
android:id="@+id/three"
android:text="3"
android:padding="10dp"/>
<TextView
android:id="@+id/four"
android:text="4"
android:padding="10dp"/>
<TextView
android:id="@+id/five"
android:text="5"
android:padding="10dp"/>
<TextView
android:id="@+id/six"
android:text="6"
android:padding="10dp"/>
<TextView
android:id="@+id/seven"
android:text="7"
android:padding="10dp"/>
<TextView
android:id="@+id/eight"
android:text="8"
android:padding="10dp"/>
<TextView
android:id="@+id/nine"
android:text="9"
android:padding="10dp"/>
</TableRow>
<TableRow>
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
</TableRow>
<TableRow>
<TextView
android:id="@+id/ten"
android:text="10"
android:padding="10dp"/>
<TextView
android:id="@+id/eleven"
android:text="11"
android:padding="10dp"/>
<TextView
android:id="@+id/twelve"
android:text="12"
android:padding="10dp"/>
<TextView
android:id="@+id/thirteen"
android:text="13"
android:padding="10dp"/>
<TextView
android:id="@+id/fourteen"
android:text="14"
android:padding="10dp"/>
<TextView
android:id="@+id/fifteen"
android:text="15"
android:padding="10dp"/>
<TextView
android:id="@+id/sixteen"
android:text="16"
android:padding="10dp"/>
<TextView
android:id="@+id/seventeen"
android:text="17"
android:padding="10dp"/>
<TextView
android:id="@+id/eighteen"
android:text="18"
android:padding="10dp"/>
</TableRow>
<TableRow>
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
<TextView />
</TableRow>
</TableLayout>
答案 0 :(得分:0)
通过更改getChildrenCount方法以返回“1”而不是i,TableLayout为每个父级显示一次。