ConstraintLayout中的MPAndroid图表以及其他小部件(不可见)

时间:2018-11-24 11:55:55

标签: android xml android-layout mpandroidchart

我正在尝试从MPAndroidChart中添加PieChart并在其下添加seekBar。

但是仍然没有运气,图表是可见的,但是其他内容是不可见的,尽管我在xml配置期间打开“设计”选项卡时仍然可见。

我已经尝试设置障碍,并与权重分组,但是仍然如此。

请任何人提供任何有关如何正确对齐图表以使其能够在视图上查看其他小部件的建议。

这是我的xml示例:

fetchCurrentUser: () => {
      try {
        const user = axios.get("/api/user/current_user").then(res => res.data.user)
        return user
      } catch (e) {
        console.log('e -', e)
        return null
      }
    },

Problem

答案

Ashish Kudale给出的第一个正确答案是:权重使用LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/linearLayout3"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.github.mikephil.charting.charts.PieChart
        android:id="@+id/pieChart"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dp"
        app:layout_constraintBottom_toTopOf="@+id/seekBar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:1)

使用由ConstraintLayout插入的LinearLayout。

尝试一下。

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/linearLayout3"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.github.mikephil.charting.charts.PieChart
        android:id="@+id/pieChart"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1" />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <SeekBar
            android:id="@+id/seekBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="text" />
    </LinearLayout>
</LinearLayout>

它的作用是将屏幕上的所有项目都放置在屏幕上,而剩下的空间则被具有android:layout_weight="1"的项目所占据