好的,我环顾四周,无法弄清楚该如何处理。
TimePicker周围有一些隐藏的间距。当我把两个TimePickers放在另一个下面时:
<LinearLayout
android:orientation="vertical"
android:background="#440044"
android:layout_margin="-30dp"
android:padding="-30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TimePicker
android:id="@+id/timePickerA"
android:scaleY="0.50"
android:scaleX="0.50"
android:layout_margin="-30dp"
android:padding="-30dp"
android:background="#989898"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timePickerB"
android:scaleY="0.50"
android:scaleX="0.50"
android:layout_margin="-30dp"
android:padding="-30dp"
android:background="#989898"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
TimePickers每个人周围仍然有很大的空间。注意我甚至尝试在TimePickers和父LinearLayout中同时使用负边距和填充。这些对TimePickers周围的间距完全没有影响。
scaleX和Y显然是为了减小这些非常庞大的TimePickers的大小!
如果可能,我试图避免制作自定义。
答案 0 :(得分:0)
问题是当您使用android:scaleY="0.50"
和android:scaleX="0.50"
时,您不会将视图缩小到一半,只需重新缩放即可。这意味着您的TimePicker
仍具有相同的宽度和高度,但绘图区域将减少一半(半X和半Y)。
请参阅下图,蓝色矩形代表视图的真实width
和height
(TimePicker)。
作为解决方案:
我认为如果你做一个自定义的更好。
否则,作为解决方法,您可以使用RelativeLayout
并使用边距,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#440044"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TimePicker
android:id="@+id/timePickerA"
android:scaleY="0.50"
android:scaleX="0.50"
android:background="#989898"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timePickerB"
android:scaleY="0.50"
android:scaleX="0.50"
android:background="#989898"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/timePickerA"
android:focusableInTouchMode="false"
android:touchscreenBlocksFocus="false"
android:layout_marginTop="-80dp" />
</RelativeLayout>
PS:我不保证您在不同的屏幕密度/尺寸下会得到相同的结果。