Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在TableLayout中添加分隔符_Java_Android_Tablelayout_Android Tablelayout - Fatal编程技术网

Java 在TableLayout中添加分隔符

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的我的xml:

<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);

        }
    }

}