我有一个活动,我使用水平线性布局来托管3个项目。一个图像按钮(上一个按钮),一个ViewFlipper和另一个imageButton(下一个按钮)。目标是当我单击下一个和上一个按钮时,viewFlipper将翻转其中的项目。
为了清楚理解,我设置了每个项目的背景颜色,用刺眼的纯色,并用相同的颜色标记组件树中的相应项目。
ViewFlipper(红色区域)的高度和宽度设置为width = fill_parent, height = Fill_parent
现在,如果我设置水平线性布局(绿色区域)width = fill_parent, height = Fill_parent
,则会裁剪两个图像按钮。两个图片按钮的width x height
为50dp x 50dp
如果我将ViewFlipper(红色区域)的宽度更改为Wrap_Content
,则按钮完全可见。但是两侧都有巨大的浪费空间,在实际的平板电脑上运行时更加明显。
如何修复布局以便在任何屏幕上缩放和适当缩放项目?我的布局XML在下面提供。
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top|center_horizontal"
android:background="#ff1cff1f">
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/ibPrevTemplate"
android:src="@drawable/selector_prev_template"
android:scaleType="fitXY"
android:background="#00ffffff"
android:layout_gravity="left|center_vertical"
android:layout_marginRight="5dp" />
<ViewFlipper
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/vfChooseTemplate"
android:layout_below="@+id/textView"
android:layout_alignParentStart="true"
android:layout_marginTop="20dp"
android:animateFirstView="true"
android:background="#ffff2a0e">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/template_OverlayedText"
android:id="@+id/textView3"
android:textSize="24sp"
android:textStyle="bold" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView3"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:src="@mipmap/template_textoverimage" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/template_TextUnderImage"
android:id="@+id/textView5"
android:textStyle="bold"
android:textSize="24sp" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView4"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:src="@mipmap/template_textunderimage" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/template_ImageBetweenText"
android:id="@+id/textView7"
android:textStyle="bold"
android:textSize="24sp" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView6"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:src="@mipmap/template_imagebetweentext" />
</LinearLayout>
</ViewFlipper>
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/ibNextTemplate"
android:src="@drawable/selector_next_template"
android:scaleType="fitXY"
android:background="#00ffffff"
android:layout_marginLeft="5dp"
android:layout_gravity="center_vertical|right" />
</LinearLayout>
答案 0 :(得分:1)
您可以尝试使用:
<ViewFlipper
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:id="@+id/vfChooseTemplate"
android:layout_below="@+id/textView"
android:layout_alignParentStart="true"
android:layout_marginTop="20dp"
android:animateFirstView="true"
android:background="#ffff2a0e">
这样,它应该填满可用空间。