/** * 设置表格的数据 * @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从底部弹出的效果: