2014-11-24 2 views
0

Я пытаюсь добавить кнопку ниже 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> 

ответ

0

Я только попробовал это, и это работает. Возможно, ваш график занимает все свободное место, поэтому добавленная кнопка находится под экраном? Попробуйте обернуть LinearLayout в ScrollView и посмотреть, есть ли кнопка внизу.

+0

Обертка LinearLayout в ScrollView теперь показывает только кнопку, но не график! –

Смежные вопросы