我的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));
}
}
答案 0 :(得分:0)
您说在为android:layout_height
指定固定高度时可以看到图表,并且在使用wrap_content
时无法看到图表。如果是这样,这种行为的原因是您的图表本身不提供高度 - 实际上您指定fill_parent
作为其宽度和高度。因此,如果您的LinearLayout想要与图表(wrap_content
)一样小,并且您的图表想要与其周围的LinarLayout(fill_parent
一样大),Android将根本不显示您的图表。
解决方案可能是更好地问自己想要给图表增加的宽度和高度。