如何将DatePicker居中? Layout_centerhorizontal 不起作用,它将左对齐。
这是我的代码:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:id="@+id/txtTitulo"
android:textIsSelectable="true"
android:textStyle="normal|bold"
android:paddingLeft="22dp"/>
<DatePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/DatePicker1"
android:calendarViewShown="false"
android:layout_centerHorizontal="true"
>
</DatePicker></LinearLayout>
</ScrollView>
答案 0 :(得分:0)
DatePicker的父级是LinearLayout。所以设置
android:layout_gravity="center_horizontal"
在DatePicker中。
答案 1 :(得分:0)
layout_centerHorizontal
is used in RelativeLayouts,而不是LinearLayouts
答案 2 :(得分:0)
将此添加到您的DatePicker:
android:layout_gravity="center"
这里解释了layout_gravity和layout_centerVertical / Horizontal之间的区别: https://stackoverflow.com/a/25054311/7137584
答案 3 :(得分:0)
为了使DatePicker居中,我使用了ConstraintLayout。
代码在ConstraintLayout内部是这样的:
<DatePicker
android:id="@+id/dp_dueDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_large"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_priority"/>
宽度:wrap_content
layout_constraintLeft_toLeftOf:父级
layout_constraintRight_toRightOf:父级
答案 4 :(得分:0)
刚刚偶然发现了这个问题,并设法通过代码解决了它。只是想在其他人仍然遇到问题时分享这个(在 Kotlin 中):
//retrieve DatePicker object
val datePicker = view.findViewById<DatePicker>(R.id.date_picker)
//go to its first child (LinearLayout), retrieve its LayoutParams object, cast to
//FrameLayout.LayoutParams object and set the gravity to Center
datePicker[0].let { ll ->
if(ll is LinearLayout && ll.layoutParams is FrameLayout.LayoutParams) {
(ll.layoutParams as FrameLayout.LayoutParams).gravity = Gravity.CENTER
}
}
或者:
//Create a generic function to center DatePicker object
fun DatePicker?.center() {
if(this != null) {
this.getChildAt(0)?.let { ll ->
if(ll is LinearLayout && ll.layoutParams is FrameLayout.LayoutParams) {
(ll.layoutParams as FrameLayout.LayoutParams).gravity = Gravity.CENTER
}
}
}
}
//And to use:
val dp = view.findViewById<DatePicker>(R.id.date_picker)
dp.center()