tutorial studio propiedades navegar fragments example entre ejemplo dinamicos android android-layout android-fragments android-studio android-xml

studio - Android XML cortando la mitad inferior del diseño



navegar entre fragments android studio (4)

Agregue estas líneas en su ScrollView

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" android:scrollbars="vertical">

Tengo un problema con mi diseño XML, algo que pensé que no me daría muchos problemas. Tengo un diseño a continuación en una vista de desplazamiento, pero la parte inferior del diseño está cortada , no puedo ver nada más allá de la vista de la segunda lista. Al mirar a mi alrededor, parece que no veo nada malo con el xml en sí mismo y no puedo ver lo que estoy haciendo mal.

He intentado con la sugerencia del problema, es decir, agregando un peso a cada uno de los diferentes elementos, pero esto aún no ha resuelto el problema.

También agregué la actividad principal en la que se coloca el fragmento que podría ayudar a resolver el problema

Fragmento 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" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/coordinatorLayout"> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Recipe Title"/> </android.support.design.widget.TextInputLayout> <TextView android:id="@+id/ingredientsHeading" android:layout_below="@+id/text_input_layout" android:layout_width="fill_parent" android:layout_height="0dp" android:text="Ingredients" android:textStyle="bold|italic" android:layout_weight="1" /> <ListView android:id="@+id/ingredientsList" android:layout_below="@+id/ingredientsHeading" android:layout_above="@+id/directionsHeading" android:layout_width="wrap_content" android:layout_height="195dp" android:layout_weight="1"></ListView> <Button style="@style/Button" android:layout_width="wrap_content" android:layout_height="0dp" android:text="Add Ingredient" android:id="@+id/addIngredient" android:layout_below="@+id/ingredientsList" android:enabled="true" android:layout_gravity="center_horizontal" android:layout_weight="1" /> <TextView android:id="@+id/directionsHeading" android:layout_below="@+id/addIngredient" android:layout_width="fill_parent" android:layout_height="0dp" android:text="Directions" android:textStyle="bold|italic" android:layout_weight="1" /> <ListView android:id="@+id/directionsList" android:layout_below="@+id/directionsHeading" android:layout_width="wrap_content" android:layout_height="195dp" android:layout_weight="1"></ListView> <Button style="@style/Button" android:layout_width="wrap_content" android:layout_height="0dp" android:text="Add Direction" android:id="@+id/addDirection" android:layout_below="@+id/ingredientsList" android:enabled="true" android:layout_gravity="center_horizontal" android:layout_weight="1" /> </LinearLayout> </ScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/filterButton" app:backgroundTint="@color/floatingButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:clickable="true" android:src="@drawable/ic_filter" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:layout_marginBottom="63dp" android:layout_marginRight="16dp" /> </android.support.design.widget.CoordinatorLayout>

XML principal

<android.support.v4.widget.DrawerLayout 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/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The main content view --> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout2"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <FrameLayout android:id="@+id/container_body" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" /> </android.support.design.widget.CoordinatorLayout> <fragment android:id="@+id/fragment_navigation_drawer" android:name="com.example.rory.pocketchef.Fragments.FragmentDrawer" android:layout_width="@dimen/nav_drawer_width" android:layout_height="match_parent" android:layout_gravity="start" app:layout="@layout/fragment_navigation_drawer" tools:layout="@layout/fragment_navigation_drawer" /> </android.support.v4.widget.DrawerLayout>


Resolví el problema. A medida que se visualizaba la vista de desplazamiento, la parte inferior de la barra de acciones del teléfono real se estaba cortando. Entonces, para resolver esto, agregué relleno a la parte inferior de la vista de desplazamiento para volver a subirlo por encima de la barra de acciones.

El nuevo diseño es el siguiente

XML de trabajo actualizado

<?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" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/coordinatorLayout"> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="vertical" android:paddingBottom="?android:attr/actionBarSize"> <<<-------added this line <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Recipe Title"/> </android.support.design.widget.TextInputLayout> <TextView android:id="@+id/ingredientsHeading" android:layout_below="@+id/text_input_layout" android:layout_width="fill_parent" android:layout_height="0dp" android:text="Ingredients" android:textStyle="bold|italic" android:layout_weight="1" /> <ListView android:id="@+id/ingredientsList" android:layout_below="@+id/ingredientsHeading" android:layout_above="@+id/directionsHeading" android:layout_width="wrap_content" android:layout_height="195dp" android:layout_weight="1"></ListView> <Button style="@style/Button" android:layout_width="wrap_content" android:layout_height="0dp" android:text="Add Ingredient" android:id="@+id/addIngredient" android:layout_below="@+id/ingredientsList" android:enabled="true" android:layout_gravity="center_horizontal" android:layout_weight="1" /> <TextView android:id="@+id/directionsHeading" android:layout_below="@+id/addIngredient" android:layout_width="fill_parent" android:layout_height="0dp" android:text="Directions" android:textStyle="bold|italic" android:layout_weight="1" /> <ListView android:id="@+id/directionsList" android:layout_below="@+id/directionsHeading" android:layout_width="wrap_content" android:layout_height="195dp" android:layout_weight="1"></ListView> <Button style="@style/Button" android:layout_width="wrap_content" android:layout_height="0dp" android:text="Add Direction" android:id="@+id/addDirection" android:layout_below="@+id/ingredientsList" android:enabled="true" android:layout_gravity="center_horizontal" android:layout_weight="1" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_below="@+id/addDirection"> <Button style="@style/Button" android:layout_width="wrap_content" android:layout_height="0dp" android:text="Add Direction" android:id="@+id/showOptionsDialog" android:enabled="true" android:layout_gravity="center_horizontal" android:layout_weight="1" /> <Button style="@style/Button" android:layout_width="wrap_content" android:layout_height="0dp" android:text="Add Direction" android:id="@+id/saveRecipe" android:enabled="true" android:layout_gravity="center_horizontal" android:layout_toRightOf="@+id/showOptionsDialog" android:layout_weight="1" /> </RelativeLayout> </LinearLayout> </ScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/filterButton" app:backgroundTint="@color/floatingButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:clickable="true" android:src="@drawable/ic_filter" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:layout_marginBottom="63dp" android:layout_marginRight="16dp" /> </android.support.design.widget.CoordinatorLayout>


weightsum un weightsum de 1 y tu vista de scrollview es 28. Tienes que poner algo como eso <LinearLayout weightsum=15> (no tienes que poner 15) y luego lo que está dentro de tu diseño tienes que distribuir tu 15 suma. Al igual que <TextView layout_weight=1> , significa que su vista de textview va a 1/15. Cuando uso el peso también pongo la altura o el ancho, dependiendo de cuál sea el que quiero jugar, a 0dp. Por ejemplo, si quiero jugar en el ancho <TextView width=0dp height=wrap_content weight=1> . Entonces debes dar un peso a cada niño de tu LinearLayout . Espero que ayude

Editar: También ListView en ScrollView no es una buena idea, podría venir de aquí. Mira esta publicación: ¿Cómo puedo poner un ListView en un ScrollView sin que se derrumbe?


use weightSum para todos los componentes en su archivo xml ,

Es android:layout_weight . El peso solo se puede usar en LinearLayout. Si la orientación de linearlayout es Vertical , use android:layout_height="0dp" y si la orientación es horizontal , use android: layout_width = "0d p". Funcionará perfectamente.

De su pregunta: la parte inferior del diseño está siendo cortada

Es debido a la altura fija dada a los componentes.

EDITAR - xml agregado

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" tools:context="info.androidhive.materialtabs.fragments.OneFragment"> <ScrollView android:id="@+id/scrollView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fadingEdge="none" android:fillViewport="true" android:isScrollContainer="true" android:scrollbars="none"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:weightSum="10"> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1"> <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Recipe Title" /> </android.support.design.widget.TextInputLayout> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="3.5" android:orientation="vertical"> <TextView android:id="@+id/ingredientsHeading" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="Ingredients" android:textStyle="bold|italic" /> <ListView android:id="@+id/ingredientsList" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="center"> <Button android:id="@+id/addIngredient" style="@style/AppTheme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:enabled="true" android:text="Add Ingredient" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="3.5" android:orientation="vertical"> <TextView android:id="@+id/directionsHeading" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="Directions" android:textStyle="bold|italic" /> <ListView android:id="@+id/directionsList" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="center"> <Button android:id="@+id/addDirection" style="@style/AppBaseTheme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:enabled="true" android:text="Add Direction" /> </LinearLayout> </LinearLayout> </ScrollView> </LinearLayout>