在TableLayout中添加分隔符



我正试图为动态创建的表列设置一个分隔符。我的TableLayout xml:

<TableLayout
android:id="@+id/tableEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/table_header_divider"/>

我动态添加列的部分:

TableRow headerrow = new TableRow(this.getActivity());
addTableHeader("Type", 175, headerrow);
addTableHeader("Exp", 175, headerrow);
headerrow.setBackground(ContextCompat.getDrawable(this.getActivity(), R.drawable.selector_table_header));
headerrow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
tableEdit.addView(headerrow);
private void addTableHeader(String title, int colWidth, TableRow headerrow) {
TextView textview = new TextView(this.getActivity());
textview.setText(title);
textview.setLayoutParams(new android.widget.TableRow.LayoutParams(colWidth, android.widget.TableRow.LayoutParams.WRAP_CONTENT));
headerrow.addView(textview);
}

但是,分割器图像根本没有显示。有什么想法吗?或者有没有办法用程序设置除法器?谢谢

试试这个

private void addTableHeader(String title, int colWidth, TableRow headerrow) {
TextView textview = new TextView(this);
textview.setText(title);
textview.setLayoutParams(new android.widget.TableRow.LayoutParams(colWidth, android.widget.TableRow.LayoutParams.WRAP_CONTENT));
headerrow.addView(textview);
View v = new View(this);
v.setLayoutParams(new TableRow.LayoutParams(3, TableRow.LayoutParams.MATCH_PARENT));
v.setBackgroundColor(Color.RED);
headerrow.addView(v);
}

EDIT您可以添加布尔标志来检查是否需要添加分隔符

public class MyActivity extends AppCompatActivity {

TableLayout tableEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
tableEdit = findViewById(R.id.tableEdit);
TableRow headerrow = new TableRow(this);
addTableHeader("Type", 175, headerrow, true);// send true if you want to add devider
addTableHeader("Exp", 175, headerrow, false);// send false if you don't want to add devider
headerrow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
tableEdit.addView(headerrow);

}
private void addTableHeader(String title, int colWidth, TableRow headerrow, boolean flag) {
TextView textview = new TextView(this);
textview.setText(title);
textview.setLayoutParams(new android.widget.TableRow.LayoutParams(colWidth, android.widget.TableRow.LayoutParams.WRAP_CONTENT));
headerrow.addView(textview);
if (flag) {
View v = new View(this);
v.setLayoutParams(new TableRow.LayoutParams(3, TableRow.LayoutParams.MATCH_PARENT));
v.setBackgroundColor(Color.RED);
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
params.leftMargin = 100;
params.rightMargin = 200;
v.setLayoutParams(params);
headerrow.addView(v);
}
}
}

最新更新