HorizontalScrollView 项目大小不正确 - 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);
}
我在 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);
}