动态列表未显示线性布局中的所有元素

时间:2018-05-02 20:34:04

标签: android

我有一个水平线性布局,用动态列表中的TextViews填充,但它没有显示所有元素,因为它似乎超出了父级的界限。如果需要,我需要填写下面的空格。

这是我的代码:

xml:

<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/imageView_serie" android:contentDescription="imatge_serie"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nom_serie"
        android:textSize="20dp"
        android:layout_marginLeft="8dp"
        android:id="@+id/nom_serie" android:contentDescription="nom_serie" tools:text="Nom_serie"
        android:layout_toRightOf="@id/imageView_serie"
    />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize = "16dp"
        android:layout_marginLeft="8dp"
        android:textStyle="bold"
        android:id="@+id/any_serie" android:contentDescription="any_serie" tools:text="any_serie"
        android:layout_toRightOf="@id/nom_serie"
    />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sinopsis"
        android:textSize="12dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop = "8dp"
        android:id="@+id/sinopsi_serie" android:contentDescription="sinopsis_serie" tools:text="sinopsis_serie"
        android:layout_toRightOf="@id/imageView_serie"
        android:layout_below = "@id/nom_serie"
    />
    <RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="26dp"
        android:id="@+id/ratingbar_serie"
        android:layout_below = "@id/imageView_serie"
        android:layout_centerVertical="true"
        style="?android:attr/ratingBarStyleSmall"
    />
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Puntuacio"
            android:textSize="12dp"
            android:layout_marginLeft="8dp"
            android:layout_marginTop = "8dp"
            android:id="@+id/puntuacio" android:contentDescription="puntuacio" tools:text="puntuacio"
            android:layout_toRightOf="@id/ratingbar_serie"
            android:layout_below = "@id/imageView_serie"
    />

</RelativeLayout>

<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
    <TextView
        android:layout_width="65dp"
        android:layout_height="wrap_content"
        android:text="Casting:"
        android:textSize="14dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop = "24dp"
        android:id="@+id/casting" android:contentDescription="casting" tools:text="casting"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:layout_marginLeft="8dp"
        android:id="@+id/cast" android:contentDescription="cast" tools:text="cast"
        android:layout_toRightOf="@id/casting"

    />
</RelativeLayout>
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
    <TextView
        android:layout_width="65dp"
        android:layout_height="wrap_content"
        android:text="Direccio:"
        android:textSize="14dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop = "24dp"
        android:id="@+id/direccio" android:contentDescription="direccio" tools:text="direccio"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10dp"
        android:layout_marginLeft="8dp"
        android:id="@+id/dir" android:contentDescription="dir" tools:text="dir"
        android:layout_toRightOf="@id/direccio"
    />
</RelativeLayout>
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Temporades:"
            android:textSize="24dp"
            android:textStyle="bold"
            android:id="@+id/nTemporades" android:contentDescription="nTemporades" tools:text="nTemporades"
    />
</RelativeLayout>
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Comentaris"
        android:textSize="24dp"
        android:textStyle="bold"
        android:id="@+id/titol_comentaris_serie" android:contentDescription="titol_comentari_serie" tools:text="titol_comentari_serie"
    />
</RelativeLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/panell"
              android:orientation="horizontal">
</LinearLayout>

这就是我如何从列表中生成文本视图:

LinearLayout panell = (LinearLayout) findViewById(R.id.panell);
    for (int i = 1; i <= 20; i++) {
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        TextView btn = new TextView(this);
        btn.setId(i);
        final int id_ = btn.getId();
        btn.setText("button " + id_);
        //btn.setBackgroundColor(Color.rgb(70, 80, 90));
        panell.addView(btn, params);
        btn = ((TextView) findViewById(id_));
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(view.getContext(),
                        "Button clicked index = " + id_, Toast.LENGTH_SHORT)
                        .show();
            }
        });
    }

这是我的: output

2 个答案:

答案 0 :(得分:0)

我推荐Google的 flexbox-layout 项目:what's wrong with hardcoded string in android xml file?

FlexboxLayout(如果配置正确)可以在一行中添加任意数量的子TextView(如LinearLayout会),但会自动&#34;换行& #34;如果孩子不适合,可以到下一行。

答案 1 :(得分:0)

为什么不尝试使用ListView,如果你每次都添加相同的propreties