我一直试图让我的条形图显示在ScrollView中,但它根本无法工作。
这是我的布局文件,使用" android:fillViewport =" true""
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<LinearLayout
android:id="@+id/all"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/subjects"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
<TextView
android:text="subjects"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="total"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/total"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="certas"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="erradas"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/request"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
这是我的代码,使用&#34; renderer.setInScroll(true);&#34;
XYSeries result = new XYSeries("Respostas");
result.add(1, correctAnswers);
result.add(2, wrongAnswers);
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(result);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(0);
renderer.setChartTitleTextSize(0);
renderer.setLabelsTextSize(20);
renderer.setLegendTextSize(20);
renderer.setMargins(new int[] { 15, 15, 15, 15 });
renderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.BLUE);
renderer.addSeriesRenderer(r);
renderer.setChartTitle("");
renderer.setXAxisMin(0);
renderer.setXAxisMax(3);
renderer.setYAxisMin(0);
renderer.setYAxisMax(totalAnswers);
renderer.addXTextLabel(1, "Certas");
renderer.addXTextLabel(2, "Erradas");
renderer.setYLabelsAlign(Paint.Align.RIGHT);
renderer.setBarSpacing(0.5);
renderer.setShowGrid(true);
renderer.setGridColor(Color.GRAY);
renderer.setXLabels(0);
renderer.setYLabels(0);
renderer.setPanEnabled(false);
renderer.setInScroll(true);
GraphicalView chartView = ChartFactory.getBarChartView(context, dataset, renderer, BarChart.Type.DEFAULT);
LinearLayout layout = (LinearLayout)findViewById(R.id.subjects);
layout.addView(chartView,0);
我能让它发挥作用的唯一方法是添加以下内容:
chartView.setLayoutParams(new LinearLayout.LayoutParams(300, 300));
但它很糟糕,因为指标是像素,是的,我尝试过MATCH_PARENT,但它也不起作用。
我已经看到了一些类似于我的问题,但没有一个问题有任何好的答案,所以我想知道是否有人可以帮助我,或者它是否无法完成:(
谢谢你们!
答案 0 :(得分:0)
你必须在某处定义高度。在ScrollView中,您使用wrap_content作为高度。宽度由match_parent定义。图表缩放到封闭容器的高度和宽度,在您的示例中,该容器尚无高度,即高度为0.例如,您可以定义图表的(最小)高度:
chartView.setMinimumHeight(300);