android片段列表视图部分显示项目

时间:2013-07-27 17:55:36

标签: android listview layout height

我有一个带有关联的activity.xml代码的活动:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/pattern_background"
android:orientation="vertical" >

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginBottom="5dp"
    android:layout_weight="1"
    android:clickable="false" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        ...

        <LinearLayout
            android:id="@+id/llComments"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:orientation="vertical" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
    </LinearLayout>
</ScrollView>

<include
    android:id="@+id/layoutComments"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"        
    layout="@layout/widget_comentarios_fragment" >
</include>

在带有id llComments的LinearLayout中,我使用以下代码从活动中动态引入一个名为CommentsFragment的片段:

private Fragment commentsFragment;
private FragmentTransaction ft;
...
llComentarios = (LinearLayout) findViewById(R.id.llComments);
...
Bundle args  = new Bundle();
args.putString(Constants.IDMODEL, getId());
commentsFragment = CommentsFragment.newInstance(args);
ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.llComments, commentsFragment).commit();

Fragment关联的xml文件是:

<?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:orientation="vertical">

<ListView
    android:id="@+id/comments"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@color/transparent"
    android:dividerHeight="10dp"
    android:paddingLeft="@dimen/indicator_internal_padding"
    android:paddingRight="@dimen/indicator_internal_padding" />
</LinearLayout>

我无法解决的问题是,如果我没有为listview修复高度,则在活动中显示多个项目(实际上我显示的是一个和第三个项目)。它应该适应尽可能多的我通过适配器添加到片段列表中的项目。我在布局和视图中尝试了不同的高度组合,但仍然无效。也许我正在和其他人一起制作。

任何帮助将不胜感激。

提前致谢

1 个答案:

答案 0 :(得分:1)

几天后我发现了确切的问题。我将一个ListView包含在ScrollView中,这显然不是Android开发人员推荐的。 您可以在此处查找更多信息:Why ListView cannot be used in a ScrollView?

无论如何,如果你想这样做,你可以用黑客做到这一点。看看这些提议: How can I put a ListView into a ScrollView without it collapsing?

对我有用。问题解决了。