Search code examples
androidtimepicker

Analog timepicker inside scrollView not displaying time chooser


So, in portrait mode is displayed correctly, no matter if timePicker is in scrollView or not.

enter image description here

Landscape mode when is inside scroolView.

enter image description here

Landscape mode when there is no scroolView.

enter image description here

[Edit] Code:

<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>

Anyone know what is wrong?


Solution

  • There is a property in ScrollView for whether scrollview should stretch its content to fill the viewport or not.... By default its set to false and when opened in landscape mode, it doesn't work.

    So set

    android:fillViewport="true"
    

    inside Scrollview and it should work.

    For more info - http://developer.android.com/reference/android/widget/ScrollView.html