Я пытаюсь добавить кнопку ниже GraphView, и все эти элементы являются частью фрагмента. Пробовал много подходов, но никто из них не работал должным образом. Это файл макета для фрагмента (fragment_graph.xml).Добавление кнопок ниже GraphView, все внутри фрагмента
<FrameLayout 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="com.nma.util.sdcardtrac.GraphFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/graph_fragment_layout"
android:orientation="vertical"
/>
</FrameLayout>
И это код Java динамического добавления графика и кнопки, размещенные в фрагмента onViewCreated (View view, Bundle savedInstanceState)
.
storageGraph = new LineGraphView(getActivity(), graphLabel);
storageGraph.addSeries(graphSeries); // More config calls follow
...
LinearLayout view = (LinearLayout)getView().findViewById(R.id.graph_fragment_layout);
Button button = new Button(getActivity());
button.setText("Test");
view.addView(storageGraph);
view.addView(button);
кнопка не виден, хотя я установить ориентацию к вертикали для LinearLayout, содержащего его.
EDIT - решена!
Я обнаружил, что вложенность графика под собственным LinearLayout и кнопками под другим LinearLayout, и оба из них, завернутые в LinearLayout, исправили проблему! LinearLayout, содержащий график, должен быть взвешен (я выбрал вес 0,8). Компоновка файл выглядит следующим образом:
<FrameLayout 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="com.nma.util.sdcardtrac.GraphFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/graph_fragment_wrap"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.8"
android:id="@+id/graph_fragment_layout"
android:orientation="vertical" />
<LinearLayout
android:id="@+id/graph_buttons"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_navigation_previous_item"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_navigation_next_item"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
Обертка LinearLayout в ScrollView теперь показывает только кнопку, но не график! –