Java 在TableLayout中添加分隔符
我试图为动态创建的表列设置分隔符。用于TableLayout的我的xml:Java 在TableLayout中添加分隔符,java,android,tablelayout,android-tablelayout,Java,Android,Tablelayout,Android Tablelayout,我试图为动态创建的表列设置分隔符。用于TableLayout的我的xml: <TableLayout android:id="@+id/tableEdit" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/table_header_divider"/> 但是,分割图像根本不显示。有什么想法吗?或者有没
<TableLayout
android:id="@+id/tableEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/table_header_divider"/>
但是,分割图像根本不显示。有什么想法吗?或者有没有办法通过编程设置分隔符?谢谢 试试这个
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);
}
编辑您可以添加布尔标志来检查是否需要添加分隔符
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);
}
}
}
你能分享你想要输出的屏幕截图吗?你能检查一下这个URL@hyperfkcb@faldujaldeph错误的问题链接吗?它是用于
表格布局的
而不是用于表格布局的
@hyperfkcb这个链接是供参考的,你需要使用查看
查看设备非常感谢!但是根据问题中的屏幕截图,分隔线太靠近下一列。我试图添加paddingRight,但它根本不会移动。有什么想法吗?@hyperfkcb抱歉,我不明白,如果你有新的查询,请发布n个新问题,并提供更多详细信息,以便其他用户可以尝试帮助你,我的朋友
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);
}
}
}