Search code examples
androidscrollandroid-linearlayoutandroid-relativelayout

Relative Layout Not Scrolling


Here is my xml code:

<RelativeLayout
    android:id="@+id/drawerPane"
    android:layout_width="@dimen/_260sdp"
    android:layout_height="match_parent"
    android:layout_gravity="start">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/white">

            <!-- Profile Box -->

            <RelativeLayout
                android:id="@+id/profileBox"
                android:layout_width="match_parent"
                android:layout_height="@dimen/_80sdp"
                android:layout_marginTop="@dimen/_10sdp"
                android:background="@color/white"
                android:padding="8dp">

                <ImageView
                    android:id="@+id/avatar"
                    android:layout_width="@dimen/_45sdp"
                    android:layout_height="@dimen/_45sdp"
                    android:layout_marginLeft="@dimen/_10sdp"
                    android:layout_marginTop="@dimen/_7sdp"
                    android:clickable="true"
                    android:onClick="onClickPainel"
                    android:src="@drawable/logo_usuario" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/_50sdp"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="@dimen/_5sdp"
                    android:layout_toRightOf="@+id/avatar"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/txtUserName"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:clickable="true"
                        android:onClick="onClickPainel"
                        android:text="Entrar"
                        android:textColor="@color/cinza"
                        android:textSize="@dimen/_11sdp" />

                    <TextView
                        android:id="@+id/txtCidade"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="bottom"
                        android:layout_marginTop="@dimen/_2sdp"
                        android:text=""
                        android:textColor="@color/cinza_cidade"
                        android:textSize="@dimen/_8sdp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/txtLinkLoja"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="bottom"
                        android:layout_marginTop="@dimen/_8sdp"
                        android:autoLink="web"
                        android:text=""
                        android:textColor="@color/cinza"
                        android:textColorLink="@color/azulBotao"
                        android:textSize="@dimen/_8sdp" />
                </LinearLayout>
            </RelativeLayout>

            <ExpandableListView
                android:id="@+id/exp_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/profileBox"
                android:childDivider="@color/white"
                android:dividerHeight="@dimen/_1sdp"></ExpandableListView>

            <!-- List of Actions (pages) -->
            <ListView
                android:id="@+id/navList"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/exp_list"
                android:background="#ffffffff"
                android:choiceMode="singleChoice" />

            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/navList"
                android:layout_gravity="center"
                android:layout_marginLeft="@dimen/_22sdp"
                android:layout_marginTop="@dimen/_10sdp"
                android:text="Equipe - just for moms"
                android:textColor="@color/azulBotao"
                android:textSize="@dimen/_11sdp" />

            <ListView
                android:id="@+id/navSobre"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/title"
                android:layout_marginTop="@dimen/_10sdp"
                android:background="#ffffffff"
                android:choiceMode="singleChoice"
                android:dividerHeight="0dp" />

            <TextView
                android:id="@+id/doacoes"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/navSobre"
                android:layout_gravity="center"
                android:layout_marginLeft="@dimen/_22sdp"
                android:layout_marginTop="@dimen/_10sdp"
                android:text="Doações"
                android:textColor="@color/azulBotao"
                android:textSize="@dimen/_11sdp" />

            <ImageView
                android:id="@+id/imgDoacoes"
                android:layout_width="@dimen/_25sdp"
                android:layout_height="@dimen/_25sdp"
                android:layout_below="@+id/doacoes"
                android:layout_gravity="center"
                android:layout_marginLeft="@dimen/_25sdp"
                android:layout_marginRight="@dimen/_5sdp"
                android:layout_marginTop="@dimen/_2sdp"
                android:src="@drawable/doacao" />

            <TextView
                android:id="@+id/txtDoacoes"
                android:layout_width="@dimen/_140sdp"
                android:layout_height="wrap_content"
                android:layout_below="@+id/doacoes"
                android:layout_gravity="center"
                android:layout_marginLeft="@dimen/_52sdp"
                android:clickable="true"
                android:onClick="onClickDoacoes"
                android:text="Confira a lista de entidades que você pode ajudar"
                android:textColor="@color/cinza_cidade"
                android:textSize="@dimen/_10sdp" />

        </RelativeLayout>
    </ScrollView>
</RelativeLayout>

I would like to scroll in this layout because the last part of the RelativeLayout is not visible! But i don't know how to do it.

My ScrollView has just one child.

I putted fillViewport="true" in ScrollView because before this, my First RelativeLayout inside ScrollView did not get fill parent in heigh.

Ps.: This is a Left Menu


Solution

  • as this question said nesting scrollable views like ListView inside scrollView is not a good choice Android list view inside a scroll view and if you dont set android:fillViewport="true" the ListView will not be Vissible inside scroll view . as a solution fo that you can use NestedScrollView and custom ListView that implement some ways for solving measurement and scrolling problems `