为什么只有一个视图添加到片段布局中?

时间:2017-03-11 14:41:11

标签: android android-fragments

所以我想添加尽可能多的"玩家"我在我的数据库中,只是他们的名字。 (下面我只使用了一个简单的for循环并删除了从数据库调用数据的代码)我的问题是,当我尝试在for循环中将card_player.xml添加到fragment_layout.xml时,它只添加第一个项目而且我不知道为什么。下面只显示了卡片视图" 0"为mName。它不应该显示5张卡片视图吗?

  

fragment_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mPlayerList"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
</LinearLayout>
  

card_player.xml

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

    <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        card_view:cardBackgroundColor="@color/rippelColor"
        card_view:cardCornerRadius="4dp">


            <TextView
                android:id="@+id/mName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Dummy Name" />

</android.support.v7.widget.CardView>
</LinearLayout>

这是我的fragment.java onCreate方法:

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

rootView = inflater.inflate(R.layout.fragment_layout, container, false);
initView();
return rootView;


}
public void initView(){
    LinearLayout mLinearLayoutContainer = (LinearLayout) rootView.findViewById(R.id.mPlayerList);
    LayoutInflater inflater = getActivity().getLayoutInflater();

for(int i = 0; i < 5; i++) {

        View mView = inflater.inflate(R.layout.card_of_player, mLinearLayoutContainer, false);

        TextView mName = (TextView) mView.findViewById(R.id.mName);

        mName.setText(i+""); // just set as name the i variable.

        mLinearLayoutContainer.addView(mView);

    }


}

1 个答案:

答案 0 :(得分:0)

你的cardLayout的高度为matchParent,所以第一个就是占用了所有的屏幕。如果您将ScrollView添加为LinearLayout的父级,您将看到上面的其他内容。

更正的代码是:

 $('#confirmActionModal').on('show.bs.modal', function (event) {
            var button = $(event.relatedTarget) ;// Button that triggered the modal
            var modalTitle = button.data('title'); // Extract info from data-* attributes
            var modalBody = button.data('body');
            var modalActionButtonText = button.data('modal-primary-button-text');
            var modal = $(this);
            modal.find('.modal-title').text(modalTitle);
            modal.find('.modal-body').text(modalBody);
            modal.find('.btn-primary').text(modalActionButtonText);
        })