Autore Topic: Problema con Posizionamento ListView e Fragment  (Letto 273 volte)

Offline Raffyna

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc wildfire
  • Sistema operativo:
    seven
Problema con Posizionamento ListView e Fragment
« il: 16 Aprile 2015, 17:00:19 CEST »
0
Salve,
sto provando a creare una view che contenga nella metà superiore un grafico e nella metà inferiore una list view.
Il problema è che non riesco a posizionare gli oggetti in questione, ovvero non riesco a posizionare la list view al di sotto del grafico.
Vi posto il codice :
Codice (Java): [Seleziona]
public class EsempioFragment extends Fragment {
        View rootView;
       
       
        protected ListView mDrawerList;
        public DTCFragment(){}
       
        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        rootView = inflater.inflate(R.layout.fragment_dtc, container, false);
        /*================================================================================
        Controllo la navigation Drawer = sezione di login/Logout
                ==================================================================================*/

                TypedArray navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons);
                //Aggiornamento dei titoli della navigation drawer
                if(SingletonClass.getSingletonIstance().getID_U()==null && SingletonClass.getSingletonIstance().getNome()==null){
                Costanti.navDrawerItems.get(3).setTitle("Log in");
                Costanti.navDrawerItems.get(3).setIcon( navMenuIcons.getResourceId(3, -1));
                }
                else{
                Costanti.navDrawerItems.get(3).setTitle("Log out");
                Costanti.navDrawerItems.get(3).setIcon( navMenuIcons.getResourceId(6, -1));
                }
                ((MainActivity) getActivity()).updateDrawer();
                /*==================================================================================*/

                return rootView;
}
       
       
         @Override  
            public void onActivityCreated(Bundle savedInstanceState) {  
                super.onActivityCreated(savedInstanceState);  
                 
                ArrayList<String> mDataSourceList = new ArrayList<String>();
                        //add data to ListView  
                for(int i=0; i<5; i++)
                    mDataSourceList.add("Esempio" + i);                
                               
                ListView listView = (ListView) getActivity().findViewById(R.id.dtc_details);  
                listView.setAdapter(new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, mDataSourceList));  
          }  


        @Override
        public void onResume() {
                super.onResume();              
                drawChart();
//              dtc_details();
        }

                private void drawChart() {
                XYMultipleSeriesDataset series = new XYMultipleSeriesDataset();
                XYValueSeries newTicketSeries = new XYValueSeries("New Tickets");
               
               
                //Riceveremo i dati dal Server
               
                //Coordinate Cartesiane
                ArrayList<Integer> x = new ArrayList<Integer>();
                for(int i=0; i<7;i++)
                        x.add(i+1);
               
                ArrayList<Integer> y = new ArrayList<Integer>();
                y.add(5);
                y.add(1);
                y.add(1);
                y.add(5);
                y.add(2);
                y.add(2);
                y.add(7);
                               
                //Date associate all'asse x
                Date[] dateValues = { new Date(114, 0, 1), new Date(115, 3, 1), new Date(115, 6, 1),new Date(115, 6, 11),new Date(115, 6, 20),new Date(115, 6, 21),new Date(115, 7, 1)};
               
                SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy", Locale.ITALY);
                ArrayList<String> formato = new ArrayList<String>();
                for(int i=0; i<dateValues.length;i++){
                        formato.add(sdf.format(dateValues[i]));
                }
               
                for(int i=0; i<x.size();i++){
                newTicketSeries.add(x.get(i), y.get(i));                       
                }
                series.addSeries(newTicketSeries);
               
                XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
                renderer.setXLabels(0);
                renderer.setXAxisMin(0);                                // per centrare il grafico
                renderer.setXAxisMax(x.size()+0.5);     // per centrare il grafico
                renderer.setYAxisMin(0);
                renderer.setYAxisMax(Collections.max(y)+0.5);        
                renderer.setAxisTitleTextSize(20);
                renderer.setLabelsTextSize(16);
                renderer.setAxesColor(Color.BLACK);
                renderer.setTextTypeface(null,Typeface.BOLD);
                renderer.setXLabelsColor(Color.BLUE);
                renderer.setYLabelsColor(0, Color.BLACK);
                renderer.setXLabelsAngle(35);
                renderer.setLabelsColor(Color.BLACK);
                renderer.setChartTitle("DTCs History");
                renderer.setXTitle("Date");
                renderer.setYTitle("DTCs");
                //renderer.setApplyBackgroundColor(false);
                renderer.setMarginsColor(Color.WHITE);
                renderer.setBackgroundColor(Color.WHITE);
                renderer.setShowLegend(false);
                renderer.setPointSize(7);
               
                for(int i=0;i<dateValues.length;i++)
                renderer.addXTextLabel(i+1, formato.get(i));           
               
                XYSeriesRenderer newTicketRenderer = new XYSeriesRenderer();
                newTicketRenderer.setColor(Color.BLACK);
                newTicketRenderer.setPointStyle(PointStyle.CIRCLE);
                newTicketRenderer.setFillPoints(true);
                newTicketRenderer.setChartValuesTextSize(20);
                newTicketRenderer.setDisplayChartValues(true);
                newTicketRenderer.setChartValuesTextSize(20);
                newTicketRenderer.setLineWidth(5);
               
               
                renderer.addSeriesRenderer(newTicketRenderer);
               
                GraphicalView chartView = ChartFactory.getTimeChartView(getActivity(), series, renderer,"MM yy");
               
                LinearLayout layout = (LinearLayout) getActivity().findViewById(R.id.layoutgrafico);       
                //Setto le dimensioni del layout che ospita il grafico dinamicamente al fine di poterlo adattare al device che ospita l'applicazione
                DisplayMetrics metrics = getResources().getDisplayMetrics();
                int width = metrics.widthPixels;
                int height = metrics.heightPixels;
                layout.addView(chartView,new LayoutParams((int) (width),(int) (height * 0.4)));
               
                }

Codice XML :

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
   
      <LinearLayout
       android:id="@+id/layoutgrafico"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:gravity="center_horizontal"
       android:orientation="vertical" />
   
     
    <ListView
        android:id="@+id/dtc_details"
     android:layout_below="@+id/layoutgrafico"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
 ></ListView>
 
</RelativeLayout>

potreste aiutarmi ?
Grazie