我需要在滚动视图中有一个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>
欢迎任何帮助
答案 0 :(得分:1)
简短的回答是你不能在ScrollView中拥有ListView。这是related SO thread。
查看您的布局,您可以将其重新设计为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>
答案 1 :(得分: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。我遇到的一个问题是,无法将Fragments分离并重新连接到除了自己的ViewID之外的任何东西;一旦附加到ViewID,它必须重新连接到同一个ViewID。小的减速,但如果保留此ID,则可能无法重新创建新的FrameLayout并将ID设置为之前的状态(不确定)。
使用这种方法: 1)使用LinearLayout或ScrollView创建一个Activity(还没有子视图)。 2)对于您要附加的每个片段,创建一个新的FrameLayout(或其他) 3)将FrameLayout(或其他)的ViewID设置为新生成的视图ID,如果片段先前已连接,则设置为先前的id。 4)将FrameLayout(或其他)添加到LinearLayout / ScrollView。 5)使用FragmentManager将片段附加到刚添加的视图。
希望这有帮助。