【问题标题】:TableLayout filled programatically wont show in fragment以编程方式填充的 TableLayout 不会显示在片段中
【发布时间】:2014-06-13 07:24:39
【问题描述】:

尝试:从空表布局开始,然后随行动态增长。

问题:我什么也没看到。我检查过,onCreateView 确实被调用了,但仍然没有显示。

注意:我正在使用片段

片段类:

 public class PointsTableFragment extends Fragment {

    String[][] data = { 
            { "team", "p1", "p2", "p3", "p4", "p5", "p6", "p7" },
            { "team", "p1", "p2", "p3", "p4", "p5", "p6", "p7" },
            { "team", "p1", "p2", "p3", "p4", "p5", "p6", "p7" },
            { "team", "p1", "p2", "p3", "p4", "p5", "p6", "p7" },
            { "team", "p1", "p2", "p3", "p4", "p5", "p6", "p7" }
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {


        View rootView = inflater.inflate(R.layout.fragment_points_table,
                container, false);

        TableLayout table = (TableLayout) rootView
                .findViewById(R.id.points_table);



        for (String[] row : data) {

            TableRow tr = new TableRow(this.getActivity());
            tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
                    LayoutParams.WRAP_CONTENT));

            for(String value : row){

                TextView tv = new TextView(this.getActivity());
                tv.setText(value);
                tv.setTextSize(18);
                tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT));
                tv.setTextColor(Color.RED);
                tr.addView(tv);

            }   
            table.addView(tr);
        }



        return rootView;
    }
    }

片段布局:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/fixture_list_divider"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/points_table"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:stretchColumns="0,1,2,3,4,5,6,7" >
    </TableLayout>

</LinearLayout>

【问题讨论】:

    标签: android android-fragments android-tablelayout


    【解决方案1】:

    您需要使用LinearLayout LayoutParamsTableLayout LayoutParams 作为参数而不是本机ViewGroup LayoutParams

    改变这个:

        tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
    

    收件人:

        tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        tr.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
    

    【讨论】:

    • 按你说的改了,没用!
    猜你喜欢
    • 2012-02-23
    • 1970-01-01
    • 2012-12-29
    • 2014-01-30
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多