在片段的视图android中添加元素

时间:2015-09-04 11:12:27

标签: android android-fragments

我是Android新手,我有一个包含此XML代码的片段

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="16dp"
        android:orientation="vertical"
        android:id="@+id/linearRoot"
        >
        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/cv"
            >
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="16dp"
                >
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/person_name"
                    android:layout_alignParentTop="true"
                    android:textSize="30sp"
                    android:text="bonjour"
                    />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/person_age"
                    android:layout_below="@+id/person_name"
                    android:text="ce test a réussi"
                    />
            </RelativeLayout>
        </android.support.v7.widget.CardView>
    </LinearLayout>
</ScrollView>

有了这个,我想动态添加几个CardView.So,作为测试,我试图以这种方式在LinearLayout中添加第二个CardView:

    public class TopRatedFragment extends Fragment {
    LinearLayout ll;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_top_rated, container, false);
        ll = (LinearLayout)rootView.findViewById(R.id.linearRoot);
        CardView cv = new CardView(getActivity().getApplicationContext());
        ll.addView(cv);

        return rootView;
    }
}

但它什么都没做。我想知道这样做的正确方法是什么。

1 个答案:

答案 0 :(得分:0)

你必须添加LayoutParams(宽度,高度)才能真正显示你的CardView

cv.setLayoutParams(new ViewGroup.LayoutParams(20,20));

例如,宽度和高度为20dp