Android LinearLayout无法显示

时间:2014-01-11 18:49:58

标签: android android-layout

我的xml有问题。我有一个LinearLayout,它包含一个图表(aChartEngine库),如果我将高度设置为480dp,它会显示图表,如果我将高度设置为wrap_content,则不会显示任何内容。我认为父母有什么问题。这是整个xml文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context=".Sniffer" >

<TabHost
    android:id="@+id/tabHost"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="@color/black" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white" >
            </TabWidget>

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <LinearLayout
                    android:id="@+id/tab1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:orientation="vertical" >

                   <!-- removed some content here, 2 much space and not relevant -->

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/tab2"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:orientation="vertical" >

                    <View
                      android:layout_width="1dp"
                      android:layout_height="30dp">
                    </View>

                    <View
                        style="@style/Divider"
                        android:background="@color/semi_transparent"/>

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/tab3"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:orientation="vertical" >

                    <View
                      android:layout_width="1dp"
                      android:layout_height="30dp">
                    </View>

                    <View
                        style="@style/Divider"
                        android:background="@color/semi_transparent"/>

                </LinearLayout>

                 <LinearLayout
                    android:id="@+id/tab4"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:orientation="vertical" >

                    <View
                      android:layout_width="1dp"
                      android:layout_height="30dp">
                    </View>

                    <LinearLayout
                        android:id="@+id/chart"
                        android:layout_width="match_parent"
                        android:layout_height="500dp"                    
                        android:orientation="horizontal">
                    </LinearLayout>

                </LinearLayout>
            </FrameLayout>
        </LinearLayout>
    </ScrollView>
</TabHost>

在tab4下有一个带有图表ID的LinearLayout。这就是我放置图表的地方。我尝试使用权重属性和0dip,但仍然无法正常工作,只有固定的高度。

LE:LinearLayout为空,因为我以编程方式向其添加内容。

图表的代码段。

public void createGraphCPU(List<BasicNameValuePair> values){

    mSeries = new CategorySeries("");
    mRenderer = new DefaultRenderer();
    statisticsTab.removeAllViews();

    Collections.shuffle(COLORS_LIST);
    for(int i=0;i<values.size();i++){
        double value=Double.parseDouble(values.get(i).getValue());
        mSeries.add( values.get(i).getName(),value );
        SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
        renderer.setColor(COLORS_LIST.get(i%COLORS_LIST.size()));
        renderer.setDisplayChartValues(true);
        mRenderer.addSeriesRenderer(renderer);
    }

     mRenderer.setChartTitleTextSize(20); 
     mRenderer.setChartTitle("CPU Energy Consumption");
     mRenderer.setLabelsTextSize(15);  
     mRenderer.setLegendTextSize(15);  
     mRenderer.setMargins(new int[] { 20, 15, 15, 0 });  
     mRenderer.setZoomButtonsVisible(true);  

     if (mChartView != null) {
          mChartView.repaint();
    }
     else{
         mChartView = ChartFactory.getPieChartView(this, mSeries,mRenderer);
        statisticsTab.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
     }

}

1 个答案:

答案 0 :(得分:0)

您说在为android:layout_height指定固定高度时可以看到图表,并且在使用wrap_content时无法看到图表。如果是这样,这种行为的原因是您的图表本身不提供高度 - 实际上您指定fill_parent作为其宽度和高度。因此,如果您的LinearLayout想要与图表(wrap_content)一样小,并且您的图表想要与其周围的LinarLayout(fill_parent一样大),Android将根本不显示您的图表。

解决方案可能是更好地问自己想要给图表增加的宽度和高度。