3

問題はかなり明確です: X/Y に関する情報はアクティビティに表示されますが、フラグメントには表示されません...

アクティビティでは、グラフが描画され、X と Y に関する情報とグラフのタイトルが表示されます。

フラグメントでは、グラフのみが表示され、X 軸と Y 軸に関する情報もタイトルもありません...

アクティビティ:

public class Chart extends Activity {

@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.chart);

    //UNDER CONSTRUCTION
    GraphViewSeries exampleSeries = new GraphViewSeries(new GraphViewData[] {  
          new GraphViewData(1, 2.0d)  
          , new GraphViewData(2, 1.5d)  
          , new GraphViewData(3, 2.5d)  
          , new GraphViewData(4, 1.0d)  
    });  

    GraphView graphView = new BarGraphView(  
          this // context  
          , "GraphViewDemo" // heading  
    );  
    graphView.addSeries(exampleSeries); // data  
    graphView.setBackgroundColor(Color.BLACK);

   LinearLayout layout = (LinearLayout) findViewById(R.id.chart);  
   layout.addView(graphView);  
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }

}

断片:

public class ChartFragment extends Fragment {

GraphView graphView;
LinearLayout layout;

// Parameterless constructor is needed by framework
public ChartFragment() {
    super();
}

/**
 * Sets up the UI. It consists if a single WebView.
 */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    layout = new LinearLayout(getActivity());
    return layout;
}

public void displayChart(int mCatIndex, int mPeriodIndex) {

    int num = 150;  
    GraphViewData[] data = new GraphViewData[num];  
    double v=0;  
    for (int i=0; i<num; i++) {  
       v += 0.2;  
       data[i] = new GraphViewData(i, Math.sin(v));  
    }  
    graphView = new LineGraphView(  
          null 
          , "GraphViewDemo"  
    );  
    // add data  
    graphView.addSeries(new GraphViewSeries(data));  
    // set view port, start=2, size=40  
    graphView.setViewPort(2, 40);  
    graphView.setScrollable(true);  
    // optional - activate scaling / zooming  
    graphView.setScalable(true);  
    layout.addView(graphView);  
}

}

何が問題になる可能性がありますか?

編集と解決策:

ばかげた間違い: X と Y のラベルは両方とも白い色です... 最初のレイアウトでは、私の背景は黒でした ==> OK

私のフラグメントでは、背景は白でした ==> X と Y のラベルが見えません

4

1 に答える 1

0

最初の例では、LinearLayout がレイアウトで定義されていました (with/height パラメータで固定されている可能性があります)。幅/高さの値を固定して、フラグメントで LL を定義してみてください。

于 2013-03-26T13:33:25.910 に答える