I have problem with my gridview filled with button. Size of buttons are different when I user match_parent, when I set fixed size it looks good, but not on all screen sizes. Maybe I should use other component than buttons? This is my code.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.myfragment, container,
false);
GridView myfragment_grid = (GridView) rootView.findViewById(R.id.myfragment_grid);
myfragment_grid.setAdapter(new GridAdapter(getActivity()));
return rootView;
}
public class GridAdapter extends BaseAdapter {
public GridAdapter(Context c) {
mContext = c;
}
public int getCount() {
return 12;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView,
ViewGroup parent) {
String[] labels = getActivity().getResources().getStringArray(
R.array.grid_labels);
Button menuButton;
if (convertView == null) {
menuButton = new Button(mContext);
menuButton.setBackgroundColor(getResources().getColor(
R.color.grid_item_color));
menuButton.setTextColor(getResources().getColor(R.color.white));
menuButton.setTextSize(15);
menuButton.setText(labels[position]);
menuButton.setLayoutParams(new GridView.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
menuButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
switch (position) {
...
}
}
});
} else {
menuButton = (Button) convertView;
}
return menuButton;
}
private Context mContext;
}