2017-01-15 4 views
0

У меня есть следующий код Xml, где я хочу отображать содержимое фрагмента в FrameLayount, но я не знаю, как держать мою кнопку всегда на дне.Кнопка Android постоянно внизу

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_lista_preguntas" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.ingenierovagabundo.encuestafacil.GUI.ListaPreguntasActivity"> 

<!-- Toolbar --> 
<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/appbar_nueva_pregunta" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:elevation="4dp" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

<FrameLayout 
    android:id="@+id/contenedor_Pregunta" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

</FrameLayout> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|right" 
    android:layout_marginBottom="16dp" 
    android:layout_marginRight="16dp" 
    android:text="@string/npa_button_guardar"/> 

ответ

0

Вы можете добавить android:layout_weight="1" к вашему FrameLayout. Это расширит FrameLayout, чтобы заполнить все оставшееся пространство в родительском представлении. Это должно привести к тому, что кнопка будет внизу. Так что ваш результат FrameLayout будет,

<FrameLayout 
    android:id="@+id/contenedor_Pregunta" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"> 

</FrameLayout> 

Для более на layout_weight перейдите по ссылке https://developer.android.com/guide/topics/ui/layout/linear.html#Weight

0

Вы использовать LinearLayout в контейнере, то элементы следуют друг за другом.

Если вы хотите, чтобы ваша кнопка всегда была внизу, используйте RelativeLayout с android:layout_alignParentBottom="true".

Вам также необходимо закрыть контейнер! ;)

0

Используйте этот код в activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 

    xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/AppTheme.AppBarOverlay"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       app:popupTheme="@style/AppTheme.PopupOverlay"/> 


     </android.support.design.widget.AppBarLayout> 

     <include layout="@layout/content_main" /> 

     <Button 
      android:id="@+id/button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      app:backgroundTint="@color/colorOrange" 
      app:srcCompat="@android:drawable/ic_menu_share" 
      tools:ignore="VectorDrawableCompat" /> 

    </android.support.design.widget.CoordinatorLayout> 

И в content_main.xml, используйте этот код.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/content_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:showIn="@layout/app_bar_main"> 

    <FrameLayout 
     android:id="@+id/frame_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</RelativeLayout> 
1

вы можете использовать RelativeLayout InstEd из LinearLayout, как показано ниже:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_lista_preguntas" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.ingenierovagabundo.encuestafacil.GUI.ListaPreguntasActivity"> 

<!-- Toolbar --> 
<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/appbar_nueva_pregunta" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:elevation="4dp" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

<FrameLayout 
    android:id="@+id/contenedor_Pregunta" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/btn" 
    android:layout_below="@+id/appbar_nueva_pregunta"> 

</FrameLayout> 

<Button 
    android:id="@+id/btn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="false" 
    android:layout_marginBottom="16dp" 
    android:layout_marginRight="16dp" 
    android:text="@string/npa_button_guardar" /> 

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