我创建了一个GraphicalView
(一个CombinedXYChartView
)并将其添加到我的布局中。接下来,我想在我的GraphicalView中添加一些CheckBoxes
。
问题是,GraphicalView总是与父匹配,这就是为什么我看不到我的CheckBoxes(因为它们没有空间)。
以下是截图:
这是我的代码(剪辑):
layout_chart.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color"
android:orientation="vertical" >
<!-- layout for chart -->
<LinearLayout
android:id="@+id/linearLayout_chart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
<!-- layout for checkboxes -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="checkBox1" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="checkBox2" />
</LinearLayout>
</LinearLayout>
FragmentChart.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LinearLayout v = (LinearLayout) inflater.inflate(R.layout.layout_chart, container, false);
graphicalView = initChart(); // Creating CombinedXYChartView
LinearLayout layout = (LinearLayout) v.findViewById(R.id.linearLayout_chart);
layout.addView(graphicalView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
return v;
}
图表运作完美。如果我禁用图表,也是复选框。那么,问题是什么?
答案 0 :(得分:1)
我想你需要添加权重让图表知道它需要共享一些空间。更新xml,使线性布局中的权重属性为1,包含复选框。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color"
android:orientation="vertical" >
<!-- layout for chart -->
<LinearLayout
android:id="@+id/linearLayout_chart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
<!-- layout for checkboxes -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="checkBox1" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="checkBox2" />
</LinearLayout>
</LinearLayout>