因此,无论timePicker是否在scrollView中,都会正确显示纵向模式。
在scroolView内部时的横向模式。
没有scroolView时的横向模式。
[编辑]代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.aapps.groupalarmclock.NewAlarmActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/background"
android:alpha="@dimen/background_transparency"
android:layout_centerHorizontal="true" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height"
android:layout_alignParentTop="true"
android:weightSum="2"
android:background="@color/colorToolbar"
android:gravity="center_vertical"
android:id="@+id/linearLayout">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/rl_cancle"
android:layout_weight="1"
android:background="@drawable/click_effect"
android:gravity="center">
<ImageView
android:layout_width="@dimen/toolbar_icon_size"
android:layout_height="@dimen/toolbar_icon_size"
android:id="@+id/iv_cancel"
android:src="@drawable/cancel"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginRight="@dimen/cancel_done_right_margin"
android:layout_marginEnd="@dimen/cancel_done_right_margin"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/colorText"
android:id="@+id/tv_cancel"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/iv_cancel"
android:layout_toEndOf="@+id/iv_cancel" />
</RelativeLayout>
<View
android:layout_width="1dp"
android:layout_height="@dimen/separator_height"
android:background="@color/colorLineSeparator"
android:id="@+id/v_cancel_done">
</View>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/rl_done"
android:layout_weight="1"
android:background="@drawable/click_effect"
android:gravity="center">
<ImageView
android:layout_width="@dimen/toolbar_icon_size"
android:layout_height="@dimen/toolbar_icon_size"
android:id="@+id/iv_done"
android:src="@drawable/done"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_marginRight="@dimen/cancel_done_right_margin"
android:layout_marginEnd="@dimen/cancel_done_right_margin"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/colorText"
android:id="@+id/tv_done"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/iv_done"
android:layout_toEndOf="@+id/iv_done" />
</RelativeLayout>
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrollView"
android:layout_below="@+id/linearLayout"
android:layout_centerHorizontal="true"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lltp">
<TimePicker tools:targetApi="23"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/timePicker"
android:timePickerMode="clock"
android:background="#80FFFFFF"/>
</RelativeLayout>
</ScrollView>
任何人都知道出了什么问题?
答案 0 :(得分:2)
ScrollView中有一个属性,指示scrollview是否应该拉伸其内容以填充视口....默认情况下,它设置为false,在横向模式下打开时,它不起作用。
所以设置
android:fillViewport="true"
在Scrollview中,它应该可以工作。
更多信息 - http://developer.android.com/reference/android/widget/ScrollView.html
答案 1 :(得分:0)
我在使用Android 5.1(API 22)的设备上遇到了同样的问题,但android:fillViewport="true"
在我的情况下无法解决此问题。但是如果我们添加额外的布局作为TimePicker的父级,我们可以解决这个问题。
以下示例显示了固定布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:minHeight="200dp"
android:orientation="horizontal">
<TimePicker
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:gravity="right|center_vertical"
android:onClick="onSave"
android:text="Save" />
</LinearLayout>
</ScrollView>
</LinearLayout>
请注意,TimePicker位于具有android:minHeight="200dp"
参数的LinearLayout内,而TimePicker本身具有android:layout_width="match_parent"
和android:layout_height="match_parent"
。这有助于解决ladscape方向的问题。 minHeight
参数可以包含您需要的任何值,但应该用于正确呈现TimePicker。