Java GridView仅显示一行
我试图在GridView中显示日历,它是由视图代码(不是XML)创建的。 但我只能显示GridView的一行,而不是所有的行 我认为我缺少一些属性或设置了错误的属性:Java GridView仅显示一行,java,android,gridview,Java,Android,Gridview,我试图在GridView中显示日历,它是由视图代码(不是XML)创建的。 但我只能显示GridView的一行,而不是所有的行 我认为我缺少一些属性或设置了错误的属性: protected void onCreate(Bundle savedInstanceState) { Panel panel = new Panel(context); ScrollView mainScrollView = (ScrollView)findViewById(R.id.scrollView1
protected void onCreate(Bundle savedInstanceState) {
Panel panel = new Panel(context);
ScrollView mainScrollView = (ScrollView)findViewById(R.id.scrollView1);
mainScrollView.addView(panel);
class Panel extends LinearLayout {
public Panel(Context context) {
super();
super.setMinimumHeight(400); //LayoutParams.MATCH_PARENT);
GridView view = new GridView(context);
view.setMinimumHeight(400); //(LayoutParams.MATCH_PARENT);
view.setMinimumWidth(LayoutParams.MATCH_PARENT);
view.setColumnWidth(60);
view.setNumColumns(7);
view.setVerticalSpacing(10);
view.setHorizontalSpacing(10);
view.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
view.setGravity(Gravity.CENTER);
view.setAdapter(new MYAdapter(context));
}
public class MyAdapter extends BaseAdapter {
public MyAdapter(Context context) {
super();
//insert 30 elements into a list
}
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(mContext);
String str = list.get(position);
textView.setText(str.toCharArray(), 0, str.toCharArray().length);
if (convertView == null) {
textView.setLayoutParams(new GridView.LayoutParams(65, 65));
textView.setPadding(2, 2, 2, 2);
} else {
textView = (TextView) convertView;
}
return textView;
}
}
如果我将高度设置为匹配父项或特定数字,则没有区别。请发布适配器和onCreate,向我们展示它的布局方式和xml if anyview.setColumnWidth(80);试试这个可能对你有帮助。