Make DatePicker and TimePicker smaller

前端 未结 6 1188
无人及你
无人及你 2020-12-17 10:30

Is there any way to make smaller DatePicker and TimePicker (but to be visible all parts ) in Android ? I tried to set layout_width=\"130dp\" but then DatePicker isn\'t visib

相关标签:
6条回答
  • 2020-12-17 10:37

    Use properties follow:

    Example smaller 80% original

    android:scaleY="0.8" 
    android:scaleX="0.8"
    
    0 讨论(0)
  • 2020-12-17 10:42

    (This actually works and others don't) After much searching this worked:

    <DatePicker
        android:id="@+id/dp_datepicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleX="0.7"
        android:scaleY="0.7"
        android:layout_marginLeft="-30dp"
        android:layout_marginRight="-30dp"
        android:datePickerMode="spinner"
        />
    
    <TimePicker
        android:id="@+id/tp_timepicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleX="0.7"
        android:scaleY="0.7"
        android:layout_marginLeft="-30dp"
        android:layout_marginRight="-30dp"
        android:timePickerMode="spinner"
        />
    

    The android:scaleX="0.7" is what shrinked the visible picker (it works for DatePicker and TimePicker) and the android:layout_marginLeft="-30dp" allowed for the space to be reduced.

    Note: All attempts at using android:padding="-30dp" did not work and using android:layout_margin="-30dp" (without a side specified) also did not work. Hopefully this helps those who were as lost as me

    P.S. Google get your freaking DatePicker API fixed!

    0 讨论(0)
  • 2020-12-17 10:43

    Another solution:

    Put it in a LinearLayout and set the height of the LinearLayout manually

    0 讨论(0)
  • 2020-12-17 10:52

    This worked for me to fit a date and time picker in a dialogue with a custom layout in landscape mode on a small screen. Set the weightsum of a container (LinarLayout) to 100 and then fill it with widgets adding up to 100 in layout_weight property.

        <LinearLayout
            android:orientation="horizontal" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:weightSum="100"
            android:layout_gravity="center_horizontal">
    
                <DatePicker 
                    android:id="@+id/dlgDateTimePickerDate"
                    android:layout_width="wrap_content"
                    android:layout_weight="50"
                    android:layout_height="wrap_content" />
    
                <TimePicker
                    android:id="@+id/dlgDateTimePickerTime"
                    android:layout_weight="50"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
        </LinearLayout>
    
    0 讨论(0)
  • 2020-12-17 10:52

    You can simple scale like this:

    android:scaleY="0.5" android:scaleX="0.5"

    to get the half of the size.

    And to get a smaller padding, android:padding="-20dp"

    Looking from the framework the picker may overlap other views, but in the app, it will not.

    The padding is going to work perfectly and the buttons also.

    0 讨论(0)
  • 2020-12-17 10:57

    Instead of using "dp" for the layout width , use percentages in weight to make it smaller. For android:layout_weight to be effective, put android:layout_width to 0 dip.

    android:layout_height="wrap_content"

    android:layout_weight=".33"

    android:layout_width="0dip"

    android:textSize="12sp"

    0 讨论(0)
提交回复
热议问题