向ScrollView添加片段似乎错过了一些layoutParams

时间:2014-05-07 19:49:16

标签: android android-fragments scrollview

我正在尝试将Fragment添加到ScrollView,但我找不到一种方法来指定有效的布局参数。

像这样创建片段:

FragmentManager supportFragmentManager = getActivity().getSupportFragmentManager();

SomeFragment fragment = new SomeFragment();
FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.add(R.id.scrollView, fragment).commit();

这是scrollView:

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="25dp"
    android:scrollbars="none"
    android:background="#0000FF">

片段布局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="25dp">

</RelativeLayout>

但它显示不正确。蓝色是scrollView的背景,但Fragment和scrollView的内容的高度设置为25dp。 View image

我怎么能解决这个问题所以Fragment使用了scrollView的所有25dp(我可以测量它没有)?

我尝试过在多个地方使用类似的代码:

ScrollView.LayoutParams params = new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT, ScrollView.LayoutParams.MATCH_PARENT);
fragment.getView().setLayoutParams(params);

1 个答案:

答案 0 :(得分:0)

我通过在RelativeLayout中将子视图高度之一从Match_Parent更改为25dp来修复它。斯坦格,但它的工作原理。

似乎,当像这样添加片段时,它是Wrap_Content的默认布局参数(我仍然想知道是否有办法改变它)。