【发布时间】:2014-01-11 18:49:58
【问题描述】:
我的 xml 有问题。我有一个包含图表(aChartEngine 库)的 LinearLayout,如果我将高度设置为 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。那是我放置图表的地方。我尝试使用 weight 属性和 0dip 但仍然无法正常工作,只有固定高度。
LE:LinearLayout 是空的,因为我以编程方式向其中添加内容。
图表的代码 sn-p。
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));
}
}
【问题讨论】:
-
id为chart的LinearLayout,看起来是空的,因为里面没有任何项目?
-
是的,很抱歉没有指定,我以编程方式在其中添加项目。它只是来自 aChartEngine 库的 GraphicView,但它就在那里
-
那么,问题可能出在您分配给图表视图的布局参数上。你能分享你添加图表视图的代码吗?
-
你在使用 LinearLayout.LayoutParams 吗?