/**
* 设置表格的数据
* @param tableDatas
*/
public void setTableLayout(List<HashMap<String, Object>> tableDatas) {
TableLayout mainLayout = new TableLayout(getContext());
LinearLayout rowLayout = null;
for (int i = 0; i < tableDatas.size(); i++) {
if (i % 4 == 0) {
if(i != 0) {
setHorizontalSplit(mainLayout);
}
rowLayout = getRowLayout(mainLayout);
}
setItemLayout(i, 4, rowLayout, tableDatas,View.VISIBLE);
}
if(tableDatas.size()%4 != 0) {
for(int i = 0; i < (4 -tableDatas.size()%4); i++) {
setItemLayout(i+3, 4, rowLayout, tableDatas,View.INVISIBLE);
}
}
setCustomView(mainLayout);
}
/**
* 设置水平分割线
* @param mainLayout
*/
private void setHorizontalSplit(LinearLayout mainLayout) {
ImageView view = new ImageView(getContext());
android.view.ViewGroup.LayoutParams params = new android.view.ViewGroup.LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT, 2);
view.setBackgroundColor(Color.rgb(227, 227, 227));
mainLayout.addView(view, params);
}
/**
* 获取rowLayout
* @param mainLayout
* @return
*/
private LinearLayout getRowLayout(TableLayout mainLayout) {
LinearLayout rowLayout = new LinearLayout(getContext());
rowLayout.setOrientation(LinearLayout.HORIZONTAL);
android.view.ViewGroup.LayoutParams rowParams = new android.view.ViewGroup.LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
mainLayout.addView(rowLayout,rowParams);
return rowLayout;
}
/**
* 设置itemlayout
* @param index
* @param columnNum
* @param rowLayout
* @param visibility
*/
private void setItemLayout(int index, int columnNum, LinearLayout rowLayout,
List<HashMap<String, Object>> tableDatas, int visibility) {
LinearLayout itemLayout = new LinearLayout(getContext());
android.widget.LinearLayout.LayoutParams params1 = new android.widget.LinearLayout.LayoutParams(
android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,100f);
itemLayout.setOrientation(LinearLayout.VERTICAL);
itemLayout.setId(index);
itemLayout.setBackgroundResource(R.drawable.bottom_dialog_item_selector);
itemLayout.setOnClickListener(this);
ImageView iv = new ImageView(getContext());
iv.setImageResource((Integer) tableDatas.get(index).get("extra_big_icon"));
itemLayout.addView(iv);
TextView tv = new TextView(getContext());
tv.setTextColor(Color.rgb(127, 127, 127));
tv.setPadding(0, 15, 0, 15);
tv.setGravity(Gravity.CENTER);
tv.setText((CharSequence) tableDatas.get(index).get("extra_type"));
itemLayout.addView(tv);
rowLayout.addView(itemLayout,params1);
if(index % columnNum != (columnNum - 1)) {
ImageView view = new ImageView(getContext());
android.view.ViewGroup.LayoutParams params = new android.view.ViewGroup.LayoutParams(
2, android.view.ViewGroup.LayoutParams.MATCH_PARENT);
view.setBackgroundColor(Color.rgb(227, 227, 227));
rowLayout.addView(view,params);
view.setVisibility(visibility);
}
itemLayout.setVisibility(visibility);
}
这是一个dialog从底部弹出的效果: