5

我需要在滚动视图中有一个arrayAdapter(片段),下面有按钮,不幸的是,这样做时我的片段有一个元素的大小并且正在滚动自己

这是我的看法:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <fragment
            android:id="@+id/myfragment"
            android:name="com.myapply.MyListFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="clip_vertical" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TEST TEST TEST"
            android:textColor="#FFFFFF"
            android:textSize="25dp" />
    </LinearLayout>
</ScrollView>

欢迎任何帮助

4

2 回答 2

1

简短的回答是您不能在 ScrollView 中有 ListView。这是一个相关的 SO 线程

查看您的布局,您可以将其重新设计为 RelativeLayout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment
            android:id="@+id/myfragment"
            android:name="com.myapply.MyListFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="clip_vertical"
            android:layout_above="@+id/bottomTextView" />

        <TextView
            android:id="@+id/bottomTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TEST TEST TEST"
            android:textColor="#FFFFFF"
            android:layout_alignParentBottom="true"
            android:textSize="25dp" />

</RelativeLayout>
于 2013-06-06T13:01:09.357 回答
0

我做了类似的事情,我使用视图 ID 作为片段的“钩子”。

根据我对 Fragments 的理解,它们需要与特定的 View ID 挂钩,否则它们不会被显示。我只是创建了一个 View 容器,它有 20 个空子视图,所有的 id 编号为 0-19。我用 Activity 加载了它,然后将片段附加到我想要的视图上。

看起来像:

<LinearLayout android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <FrameLayout
        android:id="@+id/fragment_0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    ....
    <FrameLayout
        android:id="@+id/fragment_19"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
</LinearLayout>

我不像今天那样擅长动态地创建和附加子视图。这些天来,我想我只有一个空的 LinearLayout 或 ScrollView,然后动态附加视图并根据需要为它们生成 ID。我遇到的问题之一是无法将片段分离和重新附加到除了它们自己的 ViewID 之外的任何东西上;一旦附加到 ViewID,它必须重新附加到同一个 ViewID。小幅减速,但如果您保留此 ID,您可能能够重新创建一个新的 FrameLayout 并将 ID 设置为之前的值(不确定)。

使用这种方法: 1)使用 LinearLayout 或 ScrollView 创建一个 Activity(还没有子视图)。2)对于您要附加的每个片段,创建一个新的 FrameLayout(或其他) 3)将 FrameLayout(或其他)的 ViewID 设置为新生成的视图 id 或先前附加的片段(如果之前已附加)。4) 将 FrameLayout(或其他)添加到 LinearLayout/ScrollView。5) 使用 FragmentManager 将片段附加到您刚刚添加的视图。

希望这可以帮助。

于 2015-01-20T19:54:03.190 回答