Как сложить два элемента с помощью линейного макета в Android - PullRequest
0 голосов
/ 18 июня 2020

Я хочу сложить две разные диаграммы в одну линейную компоновку. Вот мой код. Я хочу, чтобы при выборе пользователем диаграммы прогресса диаграмма преобразовывалась из com.github.mikephil.charting.charts.LineChart в com.example.imed.Progress.CustomCalenderView и наоборот.

Я установил видимость в классе JAVA. Однако проблема в том, можно ли сложить эти две разные диаграммы в линейный макет? Если да, можете ли вы помочь мне исправить фрагмент кода ниже?
Я уже добавил ориентацию по вертикали, но эти две диаграммы не складываются друг в друга.

enter image description here

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:layout_marginBottom="20dp"
    android:orientation="vertical">

    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp">
    </com.github.mikephil.charting.charts.LineChart>

    <com.example.imed.Progress.CustomCalenderView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="5dp"
        android:id="@+id/custom_calendar_view">
    </com.example.imed.Progress.CustomCalenderView>

</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Если вы имеете в виду наложение View s, то нет, это невозможно с использованием LinearLayout.

Для этого вам нужно использовать, например, FrameLayout, CoordinatorLayout или ConstraintLayout.

Рекомендуемый макет для создания пользовательского интерфейса - ConstraintLayout. Он очень гибкий и в основном сочетает в себе функции любого другого макета и добавляет еще больше. Обратитесь к связанным документам, чтобы узнать больше о ConstraintLayout.

0 голосов
/ 18 июня 2020

Возможно, вам нужна только следующая форма

<com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="match_wrap"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp">
    </com.github.mikephil.charting.charts.LineChart>


     <com.example.imed.Progress.CustomCalenderView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_wrap"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:id="@+id/custom_calendar_view">
        </com.example.imed.Progress.CustomCalenderView>

CustomCalenderView не должен находиться на высоте match_parent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...