Android Graphview库未正确显示y轴,人为舍入设置为false

Android Graphview库未正确显示y轴,人为舍入设置为false,android,android-graphview,Android,Android Graphview,我正在使用github的graphview库,简称graphview 我把日期作为x轴,把重量以千克为单位作为y轴。图表是在一个片段中建立的。通过在AutoCompleteTextView中输入图形名称,可以将新图形添加到graphview: DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getActivity()); DateAsXAxisLabelFormatter dateAsXAxis

我正在使用github的graphview库,简称graphview

我把日期作为x轴,把重量以千克为单位作为y轴。图表是在一个片段中建立的。通过在AutoCompleteTextView中输入图形名称,可以将新图形添加到graphview:

   DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getActivity());
   DateAsXAxisLabelFormatter dateAsXAxisLabelFormatter = new 
   DateAsXAxisLabelFormatter(getActivity(), DateFormat.getDateInstance());
   graphView.getGridLabelRenderer().setLabelFormatter(dateAsXAxisLabelFormatter);
   graphView.getGridLabelRenderer().setNumHorizontalLabels(3);// only 4 because of the space
   graphView.getGridLabelRenderer().setHumanRounding(false);
   graphView.getViewport().setXAxisBoundsManual(true);
   graphView.getViewport().setYAxisBoundsManual(false);

   String[] names= getNames();
   ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), 
   android.R.layout.simple_dropdown_item_1line, names);
   addGraphValue.setAdapter(adapter);

   addGraphValue.setOnEditorActionListener(new TextView.OnEditorActionListener() {
       @Override
       public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
           if (actionId == EditorInfo.IME_ACTION_SEARCH){
               addToGraph(addGraphValue.getText().toString());
           }
           return true;
       }
   }); 
所以问题来了,当添加第一个值时,y轴会变得疯狂,并添加许多值:

现在,如果启用人工取整,y值是固定的,但日期显示得很奇怪:


如果我重新加载页面(保存linegraphseries,重新加载片段并再次添加),问题就不再存在了。就我个人而言,我无法找出问题所在,请帮助。

您必须覆盖GraphView,您要做的第一件事是调用init();在XML中,您还需要将com.jjoe64.graphview.graphview更改为类所在的位置(例如:com.myName.android.myapplication.app.CustomGraphView)

这应该能解决你的问题

public class CustomGraphView extends GraphView {
public CustomGraphView(Context context) {
super(context);
}
public CustomGraphView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomGraphView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);    
}
public void init() {
super.init();
// set the custom style
}
}
public class CustomGraphView extends GraphView {
public CustomGraphView(Context context) {
super(context);
}
public CustomGraphView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomGraphView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);    
}
public void init() {
super.init();
// set the custom style
}
}