只有一个XYPLOT水平居中的XYPlot的Androidplot ListView

时间:2017-03-17 20:04:48

标签: android listview graph androidplot

我想用XYPlot的ListView绘制单个图形。 为什么我不使用XYPlot? 这是因为我有几个图表,我想让用户在某个时间只选择一个图表。也就是说,一旦用户选择了一个项目,我就会根据所选项目绘制图形。此外,还存在每个项目的比例不同的问题。也就是说,如果item1从Y轴缩放到0到10,则item2可能会从-20缩放到20.因此,使用比例在同一图表上绘制将是非常糟糕的用户体验。

这就是为什么我想到了XYPlot的ListView。

但是当我放置一个XYPlot时,它变得可滚动。我尝试在XYPlot的xml代码的layout_height上使用了wrap_content或match_parent,但是当我这样做时,图表确实出现了。

这是我的ListView的代码

<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="0dp"
    android:layout_margin="0dp">
    <ListView
        android:id="@+id/listView1"
        style="@style/APDefacto.Light"
        android:padding="0dp"
        android:layout_margin="0dp"
        android:stateListAnimator="@null"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

我用来与listView

关联的XYPlot的xml代码
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ap="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.androidplot.xy.XYPlot
        style="@style/APDefacto.Light"
        android:id="@+id/xyplot"
        android:layout_width="wrap_content"
        android:layout_height="450dp"/>

</LinearLayout>

上面的代码可以工作但是可以滚动图表。将XYPlot的代码更改为

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ap="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.androidplot.xy.XYPlot
        style="@style/APDefacto.Light"
        android:id="@+id/xyplot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

或甚至使用 match_parent 作为 layout_height ,使XYPlot从listView中消失。

我想知道如何让XYPlot图形水平居中(我希望避免用户在看到整个图形之前向下滚动的痛苦)

有任何线索吗? 感谢。

1 个答案:

答案 0 :(得分:1)

我的第一个建议是不使用ListView。我不是肯定的我完全理解你的用例,但它听起来并不像你需要ListView

话虽如此,如果你想继续使用ListView,在可滚动视图中使用XYPlot(或任何其他Plot类型)时要记住几件事ListView

XYPlot没有隐式尺寸,因此您无法使用layout_width的{​​{1}}或layout_height值。

此外,wrap_content应指定为dp,因为layout_height通常会导致鸡蛋和鸡蛋类型的情景,通常会将其自身显示为您观察到的无形情节。您仍然可以安全地使用match_parent作为地图的match_parent