Я создаю приложение таблицы времени, в котором я хочу показать созданные события. Для этого я создал макет, в котором я создал вид прокрутки с относительным расположением внутри него. Я убедился, что высоты этих макетов равны количеству минут в день. Это сделало бы 1 час = 60 минут = 60 дп, что облегчит измерение высот событий.Как показать пользовательский вид динамически на основе временных интервалов?
Для событий я создал пользовательский вид, который может отображать время начала и окончания события, а также название события. События, которые я хочу добавить к относительным макетам с свойством layout_marginTop
, значение которого равно начальному времени события в минутах от начала дня.
Например, если я хочу добавить одночасовое событие в 01:30, я бы добавил вид событий 90 dp из верхней части столбца с высотой 60 дп.
Я знаю, что мне нужно сделать, но не удалось реализовать его в коде. Может кто-нибудь помочь, пожалуйста.
Теперь раскладка выглядит следующим образом:
Вид события:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_bright">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Start Time"
android:id="@+id/textView2"
android:layout_gravity="right"
android:layout_marginStart="61dp"
android:layout_alignTop="@+id/textView"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="End Time"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/textView2"
android:layout_marginStart="87dp"
android:layout_marginTop="28dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Title"
android:id="@+id/textView3"
android:layout_below="@+id/textView2"
android:layout_alignStart="@+id/textView2"
android:layout_marginTop="10dp" />
</RelativeLayout>
Я получаю два события, как это после того, как после вашего анс:
Как проверить и получать события в разное время? И высота события не меняется.
Извините, моя вина. Я создал этот метод во фрагменте, в котором я его использовал. Он еще не был там. – EgorDm
Большое вам спасибо .. Это помогает .. Можете ли вы рассказать мне, как я могу показать это для разных временных интервалов, используя время начала и окончания времени? @EgorDm –
@ user5669913 Я бы создал метод в вашем фрагменте, где вы передаете надуватель, ViewGroup, чтобы раздуть его, время начала и окончания. Затем вы повторяете тот же процесс, только вы используете время начала, чтобы вычислить margintop и вычесть время начала с конца, чтобы получить высоту. – EgorDm