做出來的效果是類似這樣子,長截屏不知道爲啥只到20點就滾不下去了,內容顯示就簡單的弄了一個TextView,需要自定義的,可以替換一下,比如封裝一個插好控件的RelativeLayout,生成的時候new一個插入數據就行,
顯示控件的長高度,和時間長度有關,1個小時就會填滿一個小時的位置,20分鐘就是1/3,40分鐘就是2/3,以此類推,顯示位置和開始時間有關,總長度從0點到24小時。
最開始想法是想說用RecyclerView做,但是,實在做不出來,百度的又是另一種時間軸,一根線那種。最後採用把24小時先放入NestedScrollView,ScrollView裏,然後動態生成控件,計算高度,生成關係,添加進ViewGroup,直接上layout代碼
<android.support.v4.widget.NestedScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/white"
app:layout_constraintBottom_toTopOf="@+id/bt_order"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraint_layout2">
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_content"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/view_time1"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="60dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time2"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="120dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time3"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="180dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time4"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="240dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time5"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="300dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time6"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="360dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time7"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="420dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time8"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="480dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time9"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="540dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time10"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="600dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time11"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="660dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time12"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="720dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time13"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="780dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time14"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="840dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time15"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="900dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time16"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="960dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time17"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1020dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time18"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1080dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time19"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1140dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time20"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1200dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time21"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1260dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time22"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1320dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time23"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1380dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time24"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1440dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_time25"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="1500dp"
android:background="@color/gray_cc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="00:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="01:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time1" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="02:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time2" />
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="03:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time3" />
<TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="04:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time4" />
<TextView
android:id="@+id/text6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="05:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time6"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time5" />
<TextView
android:id="@+id/text7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="06:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time7"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time6" />
<TextView
android:id="@+id/text8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="07:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time8"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time7" />
<TextView
android:id="@+id/text9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="08:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time9"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time8" />
<TextView
android:id="@+id/text10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="09:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time10"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time9" />
<TextView
android:id="@+id/text11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="10:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time10" />
<TextView
android:id="@+id/text12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="11:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time12"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time11" />
<TextView
android:id="@+id/text13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="12:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time13"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time12" />
<TextView
android:id="@+id/text14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="13:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time13" />
<TextView
android:id="@+id/text15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="14:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time15"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time14" />
<TextView
android:id="@+id/text16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="15:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time16"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time15" />
<TextView
android:id="@+id/text17"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="16:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time17"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time16" />
<TextView
android:id="@+id/text18"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="17:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time18"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time17" />
<TextView
android:id="@+id/text19"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="18:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time19"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time18" />
<TextView
android:id="@+id/text20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="19:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time20"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time19" />
<TextView
android:id="@+id/text21"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="20:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time21"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time20" />
<TextView
android:id="@+id/text22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="21:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time22"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time21" />
<TextView
android:id="@+id/text23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="22:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time23"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time22" />
<TextView
android:id="@+id/text24"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="23:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time24"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time23" />
<TextView
android:id="@+id/text25"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="10dp"
android:text="24:00"
android:textColor="@color/black_33"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@+id/view_time25"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_time24" />
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.NestedScrollView>
這裏NestedScrollView裏採用的是一個ConstraintLayout,最近喜歡上了這個控件,學習的話可以參考鴻洋大神的教程:
https://blog.csdn.net/lmj623565791/article/details/78011599?utm_source=tuicool&utm_medium=referral
上面那段代碼,很簡單,就一個一個排下去,排出24小時,但需要注意的是,每一個控件,都需要給他設置id,因爲我開始寫的時候,不是每一個控件都有對應的關係,所以就沒全部設置id,後來出了點問題,底下會講到,還有就是間隔,每一段時間間隔,我是設置了60dp,用做分隔線的View和View之間高度都是60dp,如果怕計算錯誤也可以一個關聯着一個,用layout_constraintTop_toBottomOf="上一個分隔線ID",margin_top=60dp。一個小時不設置60dp的話,底下計算1分鐘,1小時所佔的高度會有所差別。
把上面代碼拷貝在對應的layout裏,就能看到效果了,接下來是java代碼:
首先是動態顯示控件內容的數據類型,需要一個開始時間,一個結束時間,一個內容,如果你需要圖片的話,可以帶圖片鏈接,用Glide顯示,我這裏的數據類型是這樣的:
//刪了一些沒必要的數據
public class MeetingPlanData {
public long meetingStartTime;
public long meetingEndTime;
public String meetingTheme;//會議主題
}
假設,我從服務器中獲取了一個列表數據List<MeetingPlanData> meetingPlanData;先放着,我們先做一些準備工作:
//因爲設置寬高,以及距離都是px,所以需要一個方法把dp轉成px
public class AppUtils {
/**
* 根據手機的分辨率從 dp 的單位 轉成爲 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
}
接下來是在activity中:
//全局變量
private int oneHourPx60;//一個小時高度是60dp,轉換成像素
private int oneMimutePx1;//一分鐘高度是1dp,轉化成像素
private int width;
private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
//放在onCreate裏
private void initData() {
oneHourPx60 = AppUtils.dip2px(this, 60);//假如你不是60dp就換掉
oneMimutePx1 = AppUtils.dip2px(this, 1);//這個用你的1小時的高度除60就行了
//顯示控件寬度,不是必須得,假如你的寬度是動態的,然後距離兩邊多少也可以
width = AppUtils.dip2px(this, 250);
}
//生成放入控件的代碼,並添加進ConstraintLayout裏
private void setNewTextView(MeetingPlanData planData) {
//生成一個放入的控件
TextView textView = new TextView(this);
//給控件賦予一個id
textView.setId(View.generateViewId());
//設置控件屬性,這個不用照抄,自己喜歡什麼弄什麼就行,顯示什麼背景什麼都自己定
textView.setBackground(getResources().getDrawable(R.color.pink_be));
textView.setTextColor(getResources().getColor(R.color.black_66));
textView.setText(planData.meetingTheme + "\n" + timeFormat.format(new
Date(planData.meetingStartTime)) + "-"
+ timeFormat.format(new Date(planData.meetingEndTime)));
//底下獲取Calendar,爲了拿到一天的時間
//獲取開始時間的Calendar,這個東西很強大,能單獨設置年月日時分秒爲多少
Calendar calendar1 = Calendar.getInstance();
calendar1.setTimeInMillis(planData.meetingStartTime);
//獲取結束時間的Calendar
Calendar calendar2 = Calendar.getInstance();
calendar2.setTimeInMillis(planData.meetingEndTime);
//設置高度,算出他們直接差了多少分鐘,然後乘以分鐘所佔的像素
int height = (int) ((calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) /
60000 * oneMimutePx1);
//動態在ConstraintLayout裏面加入控件,需要ConstraintSet,使用這個,就必須所有控件都有id
//這就是上面爲什麼把ConstraintLayout裏所有控件都加了id的原因
ConstraintSet constraintSet = new ConstraintSet();
//把顯示內容添加進去
clContent.addView(textView);
//計算距離頂部的高度,很好理解,比如說13點20分,那就是距離0點有13個小時,再加上20分鐘的高度
int marginTop = calendar1.get(Calendar.HOUR_OF_DAY) * oneHourPx60 +
calendar1.get(Calendar.MINUTE) * oneMimutePx1;
//設置顯示內容寬度
constraintSet.constrainWidth(textView.getId(), width);
constraintSet.clone(clContent);
constraintSet.constrainHeight(textView.getId(), height);
//設置顯示位置,這個是水平居中,假如需要偏左偏右,就設置下margin,參考最後一個connect
constraintSet.connect(textView.getId(),ConstraintSet.END,
ConstraintSet.PARENT_ID,ConstraintSet.END);
constraintSet.connect(textView.getId(),ConstraintSet.START,
ConstraintSet.PARENT_ID,ConstraintSet.START);
constraintSet.connect(textView.getId(),ConstraintSet.TOP,
ConstraintSet.PARENT_ID,ConstraintSet.TOP,marginTop);
//應用
constraintSet.applyTo(clContent);
}
顯示list,放在獲取數據之後
if (meetingPlanData != null && meetingPlanData.size() != 0) {
for (MeetingPlanData data : meetingPlanData) {
setNewTextView(data);
}
}