Horizo​​ntalScrollView 项目大小不正确 - Android

HorizontalScrollView item size incorrect - Android

我在 NestedScrollView 中有一个 HorizontalScrollView 像这样:

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Charts"
        android:id="@+id/growth_title"
        android:textStyle="bold"
        android:textSize="16sp"/>

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:id="@+id/growth_view"
        android:gravity="center_vertical"
        android:scrollbars="none"
        android:layout_height="200dp">
        <LinearLayout
            android:layout_width="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/growth_layout"
            android:gravity="center_vertical"
            android:layout_height="200dp">
        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout>

</android.support.v4.widget.NestedScrollView>

这是我插入到 growth_layout LinearLayout 中的项目视图 XML :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:gravity="center_vertical"
android:paddingTop="0dp"
android:layout_height="200dp">

<ImageView
    android:id="@+id/icon"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:src="@drawable/baby_default"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true" />

<TextView
    android:id="@+id/title"
    android:layout_below="@id/due_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textStyle="bold"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@id/icon"
    android:text="HEIGHT"
    android:layout_marginLeft="5dp"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="20dp"
    android:textAllCaps="true"
    android:textSize="16sp" />


<TextView
    android:id="@+id/value"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:text="123"
    android:layout_below="@id/title"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="30dp"
    android:gravity="center"
    android:textAlignment="center"
    android:textStyle="bold"
    android:textSize="40sp"/>

<TextView
    android:id="@+id/dimen"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="cm"
    android:textSize="14sp"
    android:layout_alignBaseline="@id/value"
    android:layout_toRightOf="@+id/value" />


<LinearLayout
    android:layout_width="wrap_content"
    android:id="@+id/ideal_layout"
    android:gravity="center"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/dimen"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/ideal_icon"
        android:layout_width="10dp"
        android:layout_height="10dp"
        android:src="@drawable/follow_done"/>

    <TextView
        android:id="@+id/ideal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Within the ideal range"
        android:textSize="14sp" />

</LinearLayout>

<TextView
    android:id="@+id/update"
    android:layout_width="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_height="wrap_content"
    android:text="UPDATE"
    android:textStyle="bold"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="15dp"
    android:textSize="14sp" />

</RelativeLayout>

我将项目插入 LinearLayout 而不添加任何 LayoutParams,如下所示:

 View cardView = activity.getLayoutInflater().inflate(R.layout.item, null);
 growth_layout.addView(cardView);

在 Android Studio 上显示正常,如下所示:link

但是在我的 phone 上,ScrollView 中的项目采用了奇怪的尺寸,例如:link

我不知道我应该做些什么。

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

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

        <TextView
            android:id="@+id/growth_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Charts"
            android:textSize="16sp"
            android:textStyle="bold" />

        <HorizontalScrollView
            android:id="@+id/growth_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:scrollbars="none">

            <LinearLayout
                android:id="@+id/growth_layout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:orientation="horizontal">

            </LinearLayout>
        </HorizontalScrollView>
    </LinearLayout>

</android.support.v4.widget.NestedScrollView>

项目视图 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="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="@drawable/edittextborder"
        android:orientation="vertical"
        android:padding="10dp">

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

            <TextView
                android:id="@+id/title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="20dp"
                android:layout_toLeftOf="@id/icon"
                android:layout_weight="1"
                android:text="HEIGHT"
                android:textAllCaps="true"
                android:textSize="16sp"
                android:textStyle="bold" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_launcher" />

        </LinearLayout>

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

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/value"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="123"
                    android:textAlignment="center"
                    android:textColor="#A8739C"
                    android:textSize="40sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/dimen"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:layout_marginBottom="4dp"
                    android:text="cm"
                    android:textColor="#A8739C"
                    android:textSize="14sp" />
            </LinearLayout>

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

                <ImageView
                    android:id="@+id/ideal_icon"
                    android:layout_width="10dp"
                    android:layout_height="10dp"
                    android:layout_gravity="center"
                    android:src="@android:drawable/presence_online" />

                <TextView
                    android:id="@+id/ideal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Within the ideal range"
                    android:textColor="#A8739C"
                    android:textSize="14sp" />
            </LinearLayout>
            <TextView
                android:id="@+id/update"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_marginTop="35dp"
                android:text="UPDATE"
                android:textColor="#A8739C"
                android:textSize="14sp"
                android:textStyle="bold" />
        </LinearLayout>

    </LinearLayout>
</LinearLayout>

@drawable/edittextborder

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <stroke
                android:width="1dp"
                android:color="@android:color/white" />
            <solid android:color="@android:color/background_light" />
            <corners android:radius="10dp" />
        </shape>
    </item>
</layer-list>

我将项目插入到 LinearLayout 中:

LinearLayout growth_layout = (LinearLayout) v.findViewById(R.id.growth_layout);
    for (int i = 0; i < 10; i++) {
        View rootView =LayoutInflater.from(getActivity()).inflate(R.layout.adapter,null,false);
        growth_layout.addView(rootView);
    }