Create TableLayout programmatically

后端 未结 5 1357
小蘑菇
小蘑菇 2020-12-02 17:30

I\'m trying to create a TableLayout programatically. It just won\'t work. The same layout in an xml file works though. This is what I have:

public class MyTa         


        
相关标签:
5条回答
  • 2020-12-02 17:48

    Just to make the answer more clear:

    TableLayout.LayoutParams tableParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT);
    TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
    
    TableLayout tableLayout = new TableLayout(context);
    tableLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));// assuming the parent view is a LinearLayout
    
    TableRow tableRow = new TableRow(context);
    tableRow.setLayoutParams(tableParams);// TableLayout is the parent view
    
    TextView textView = new TextView(context);
    textView.setLayoutParams(rowParams);// TableRow is the parent view
    
    tableRow.addView(textView);
    

    Explanation
    When you call setLayoutParams, you are supposed to pass the LayoutParams of the parent view

    0 讨论(0)
  • 2020-12-02 17:50

    It turns out I needed to specify TableRowLayout, TableLayout etc for the layout params, otherwise the table just won't show!

    0 讨论(0)
  • 2020-12-02 17:55

    Your problem is at this line:

    b.setLayoutParams(new LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
    

    You need to change LayoutParams to TableRow.LayoutParams:

    b.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
    
    0 讨论(0)
  • 2020-12-02 18:02

    For me, to get mine I had to call addContentView().

    0 讨论(0)
  • 2020-12-02 18:11

    A good solution is to inflate layout files for each instance of row you want to create. See this post : How to duplicate Views to populate lists and tables?

    0 讨论(0)
提交回复
热议问题