Scrollview FillViewport滚动无效(MPAndroidChart)

时间:2016-05-20 05:21:04

标签: android scrollview mpandroidchart onmeasure

目标:Scrollview中的多个图表(首先只是垂直滚动,但在Gridview中有两列首选)

问题:垂直滚动无法正常工作

提示:图表的大小(使用onMeasure)和fillViewport = true可以正常工作

尝试了很多来自stackoverflow的解决方案(使用wrap_content,match_parent,权重等...),没有任何成功。

MPAndroidChart的变化

mChart.setRotationEnabled(false);
mChart.setTouchEnabled(false);
Disabled OnChartValueSelectedListener, SeekBar.OnSeekBarChangeListener

布局文件

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:elevation="@dimen/elevation"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ScrollView
        android:fillViewport="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:orientation="vertical"
            android:weightSum="100"
            tools:context=".MainActivity">

            <LinearLayout android:id="@+id/linearlayout"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="75"
                android:orientation="vertical">
                <MPAndroidChart.PieChartSquare
                    android:id="@+id/chart1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />
            </LinearLayout>

            <LinearLayout android:id="@+id/linearlayout2"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="75"
                android:orientation="vertical">
                <MPAndroidChart.PieChartSquare
                    android:id="@+id/chart2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />
            </LinearLayout>

        </LinearLayout>
    </ScrollView>

<android.support.v7.widget.RecyclerView
android:id="@+id/RecyclerView"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="left"

android:background="#ffffff"
android:scrollbars="vertical">

</android.support.v7.widget.RecyclerView>

</android.support.v4.widget.DrawerLayout>

MPAndroidChart.PieChartSquare从最初的PieChart延伸,但我添加了以下代码来调整字符大小。

   @Override
   protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    int w = MeasureSpec.getSize(widthMeasureSpec);
    int h = MeasureSpec.getSize(heightMeasureSpec);

    w = Math.min(w, h);
    h = w;

    setMeasuredDimension(w, h);
}

谢谢,并问候

更新

我使用自定义Gridview完成了这个技巧,然后为每个图表夸大了chartitem.xml。不幸的是PieChartSquare不起作用(什么都看不见),所以我必须使用PieChart。

所以我没有得到正确的图表大小。它总是非常小。

0 个答案:

没有答案