一:目的:
实现两倍测量宽度的控件,来选择日期
二:原理:
继承一个LinerLayout,使用ScrollView实现滑动,ScrollView包含LinerLayout,此LinerLayout宽度为两倍父LinerLayout的测量宽度
三:实现:
如下代码,在函数onMeasure中,实现了对当前控件及子控件ScrollView的测量,
然后对ScrollView的子控件LinearLayout宽度进行赋值,使其为两倍的父控件宽度。
在布局文件中,子控件LinearLayout包含了很多个等宽的LinearLayout,每个表示一个时间。
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="73dp"
android:scrollbars="none"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="10dp"
android:paddingBottom="4.5dp"
android:background="@android:color/white"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/day1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/txt_22px"
android:textColor="@color/color_a5"
android:paddingBottom="4dp"
android:paddingTop="0dp" />
<TextView
android:gravity="center"
android:layout_width="32.5dp"
android:layout_height="32.5dp"
android:background="@drawable/date_time_bg"
android:textColor="@drawable/color_wb"
android:textSize="@dimen/txt_32px" />
</LinearLayout>
<LinearLayout
android:id="@+id/day2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/txt_22px"
android:textColor="@color/color_a5"
android:paddingBottom="4dp"
android:paddingTop="0dp" />
<TextView
android:gravity="center"
android:layout_width="32.5dp"
android:layout_height="32.5dp"
android:background="@drawable/date_time_bg"
android:textColor="@drawable/color_wb"
android:textSize="@dimen/txt_32px" />
</LinearLayout>
<LinearLayout
android:id="@+id/day3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/txt_22px"
android:textColor="@color/color_a5"
android:paddingBottom="4dp"
android:paddingTop="0dp" />
<TextView
android:gravity="center"
android:layout_width="32.5dp"
android:layout_height="32.5dp"
android:background="@drawable/date_time_bg"
android:textColor="@drawable/color_wb"
android:textSize&#