簡體   English   中英

在滾動視圖中使用列表視圖時,主視圖中缺少頁腳菜單

[英]footer menu is missing from main view when using listview in scroll view

我在主視圖中有一個scrollview,下面有一個頁腳菜單,如選項卡欄。 現在我需要在滾動條中放置一個列表視圖。 為此,我正在關注

如何在不折疊的情況下將ListView放入ScrollView?

   public class Utility {
    public static void setListViewHeightBasedOnChildren(ListView listView) {
          ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
        // pre-condition
              return;
        }

        int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
        for (int i = 0; i < listAdapter.getCount(); i++) {
             View listItem = listAdapter.getView(i, null, listView);
             if (listItem instanceof ViewGroup) {
                listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
             }
             listItem.measure(0, 0);
             totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
                  listView.setLayoutParams(params);
    }
 }

這樣我得到了想要的視圖,但是當我在列表中加載一些數據時,主視圖中缺少頁腳菜單。

我怎樣才能解決這個問題。

更新:

主要XML

<LinearLayout
    android:id="@+id/logo_container"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:weightSum="100" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="15dp"
        android:contentDescription="@string/app_name"
       />

    <LinearLayout
        android:id="@+id/title_container"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@drawable/titleredbg"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/search_title"
            android:textColor="#fff"
            android:textSize="20sp" />
    </LinearLayout>
</LinearLayout>

<ImageView
    android:id="@+id/back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:layout_marginLeft="10dp"
    android:contentDescription="@string/app_name"
    android:padding="5dp"
  />

<TextView
    android:id="@+id/hr1"
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="#D2D2D2" />

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/container"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#fff" >

            <Button
                android:id="@+id/category"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_marginLeft="31dp"
                android:layout_marginTop="10dp"
                android:layout_toRightOf="@+id/occassion_name"
                android:background="@drawable/searchdropdown"
                android:textColor="#686868" 
             android:singleLine="true"

                android:ellipsize="marquee"
                android:maxEms="5"
                android:scrollHorizontally="true"
                android:text="NONONONONON nNONONNO "/>

            <TextView
                android:id="@+id/or_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/category"
                android:layout_below="@+id/category"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:text="@string/or"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="#C11312" />

            <TextView
                android:id="@+id/occassion_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/category"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="20dp"
                android:text="@string/search_product_text"
                android:textColor="#686868" />

            <Button
                android:id="@+id/brand"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/or_text"
                android:layout_below="@+id/or_text"
                android:background="@drawable/searchdropdown"
                android:textColor="#686868" />

            <TextView
                android:id="@+id/search_price"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/occassion_name"
                android:layout_below="@+id/brand"
                android:layout_marginTop="10dp"
                android:text="@string/sort"
                android:textColor="#686868" />

            <LinearLayout
                android:id="@+id/linearLayout1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/search_price"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp"
                android:orientation="horizontal"
                android:weightSum="100" >

                <CheckBox
                    android:id="@+id/price_level_1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="25"
                    android:button="@drawable/checkbox_xml"
                    android:paddingLeft="20dp"
                    android:textColor="#686868"
                    android:textSize="12sp" />

                       <CheckBox
                    android:id="@+id/price_level_2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="25"
                    android:button="@drawable/checkbox_xml"
                    android:paddingLeft="20dp"
                    android:textColor="#686868"
                    android:textSize="12sp" />

                <CheckBox
                    android:id="@+id/price_level_3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="25"
                    android:button="@drawable/checkbox_xml"
                    android:paddingLeft="20dp"
                    android:textColor="#686868"
                    android:textSize="12sp" />

                <CheckBox
                    android:id="@+id/price_level_4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="25"
                    android:button="@drawable/checkbox_xml"
                    android:paddingLeft="20dp"
                    android:textColor="#686868"
                    android:textSize="12sp" />
            </LinearLayout>

            <TextView
                android:id="@+id/wish_list_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/search_price"
                android:layout_below="@+id/linearLayout1"
                android:layout_marginTop="10dp"
                android:text="@string/search_wishlist"
                android:textColor="#686868" />

            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/wish_list_text"
                android:layout_alignBottom="@+id/wish_list_text"
                android:layout_alignLeft="@+id/brand"
                android:background="@drawable/searchdropdown" />

            <Button
                android:id="@+id/go"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignRight="@+id/button3"
                android:layout_below="@+id/button3"
                android:layout_marginTop="10dp"
                android:background="@drawable/gobtn" />

            <TextView
                android:id="@+id/hr2"
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:layout_below="@+id/go"
                android:layout_marginTop="5dp"
                android:background="#D2D2D2" />
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/container_2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <ListView
                    android:id="@+id/list"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:divider="#b5b5b5"
                    android:dividerHeight="1dp"
                    android:listSelector="@drawable/list_selector"

                    android:visibility="visible" />

                <LinearLayout
                    android:id="@+id/empty"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:background="#fff" >

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="20dp"
                        android:text="@string/no_products"
                        android:textColor="#000" >
                    </TextView>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="bottom"
    android:background="#fff"
    android:gravity="bottom" >

    <include layout="@layout/footer" />
</LinearLayout>

和Footer.xml

<LinearLayout
    android:id="@+id/footer_menu"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="#B40504"
    android:orientation="horizontal"
    android:padding="5dp"
    android:weightSum="100" >

    <Button
        android:id="@+id/date_to_remember"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="28"
      />

    <Button
        android:id="@+id/search_products"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="28"
             />

    <Button
        android:id="@+id/people_to_buy"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="28"
     />

    <Button
        android:id="@+id/settings"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="16"

       />
</LinearLayout>

您需要告訴程序滾動視圖應位於頁腳上方。 為此,請為您的線性布局提供一些ID,使其像

 <LinearLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="bottom"
        android:background="#fff"
        android:gravity="bottom" 
>


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

並給

android:layout_above =“ @ + id / footer”

在您的滾動視圖中。

// try this way
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/logo_container"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:weightSum="100" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="15dp"
        android:contentDescription="@string/app_name"/>

    <LinearLayout
        android:id="@+id/title_container"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@drawable/titleredbg"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/search_title"
            android:textColor="#fff"
            android:textSize="20sp" />
    </LinearLayout>

    <ImageView
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:contentDescription="@string/app_name"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/hr1"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#D2D2D2" />

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <RelativeLayout
                android:id="@+id/container"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="#fff" >

                <Button
                    android:id="@+id/category"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="31dp"
                    android:layout_marginTop="10dp"
                    android:layout_toRightOf="@+id/occassion_name"
                    android:background="@drawable/searchdropdown"
                    android:textColor="#686868"
                    android:singleLine="true"
                    android:ellipsize="marquee"
                    android:maxEms="5"
                    android:scrollHorizontally="true"
                    android:text="NONONONONON nNONONNO "/>

                <TextView
                    android:id="@+id/or_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/category"
                    android:layout_below="@+id/category"
                    android:layout_marginBottom="5dp"
                    android:layout_marginTop="5dp"
                    android:text="@string/or"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="#C11312" />

                <TextView
                    android:id="@+id/occassion_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/category"
                    android:layout_alignParentLeft="true"
                    android:layout_marginLeft="20dp"
                    android:text="@string/search_product_text"
                    android:textColor="#686868" />

                <Button
                    android:id="@+id/brand"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/or_text"
                    android:layout_below="@+id/or_text"
                    android:background="@drawable/searchdropdown"
                    android:textColor="#686868" />

                <TextView
                    android:id="@+id/search_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/occassion_name"
                    android:layout_below="@+id/brand"
                    android:layout_marginTop="10dp"
                    android:text="@string/sort"
                    android:textColor="#686868" />

                <LinearLayout
                    android:id="@+id/linearLayout1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/search_price"
                    android:layout_marginLeft="20dp"
                    android:layout_marginTop="5dp"
                    android:orientation="horizontal"
                    android:weightSum="100" >

                    <CheckBox
                        android:id="@+id/price_level_1"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="25"
                        android:button="@drawable/checkbox_xml"
                        android:paddingLeft="20dp"
                        android:textColor="#686868"
                        android:textSize="12sp" />

                    <CheckBox
                        android:id="@+id/price_level_2"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="25"
                        android:button="@drawable/checkbox_xml"
                        android:paddingLeft="20dp"
                        android:textColor="#686868"
                        android:textSize="12sp" />

                    <CheckBox
                        android:id="@+id/price_level_3"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="25"
                        android:button="@drawable/checkbox_xml"
                        android:paddingLeft="20dp"
                        android:textColor="#686868"
                        android:textSize="12sp" />

                    <CheckBox
                        android:id="@+id/price_level_4"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="25"
                        android:button="@drawable/checkbox_xml"
                        android:paddingLeft="20dp"
                        android:textColor="#686868"
                        android:textSize="12sp" />
                </LinearLayout>

                <TextView
                    android:id="@+id/wish_list_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/search_price"
                    android:layout_below="@+id/linearLayout1"
                    android:layout_marginTop="10dp"
                    android:text="@string/search_wishlist"
                    android:textColor="#686868" />

                <Button
                    android:id="@+id/button3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/wish_list_text"
                    android:layout_alignBottom="@+id/wish_list_text"
                    android:layout_alignLeft="@+id/brand"
                    android:background="@drawable/searchdropdown" />

                <Button
                    android:id="@+id/go"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignRight="@+id/button3"
                    android:layout_below="@+id/button3"
                    android:layout_marginTop="10dp"
                    android:background="@drawable/gobtn" />

                <TextView
                    android:id="@+id/hr2"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_below="@+id/go"
                    android:layout_marginTop="5dp"
                    android:background="#D2D2D2" />
            </RelativeLayout>

            <LinearLayout
                android:id="@+id/container_2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <ListView
                        android:id="@+id/list"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:divider="#b5b5b5"
                        android:dividerHeight="1dp"
                        android:listSelector="@drawable/list_selector"

                        android:visibility="visible" />

                    <LinearLayout
                        android:id="@+id/empty"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:background="#fff" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="20dp"
                            android:text="@string/no_products"
                            android:textColor="#000" >
                        </TextView>
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

        <include layout="@layout/footer"
          android:background="#fff"/>
</LinearLayout>

只需將其替換為您的代碼即可:

您的根布局將是Relativelayout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

您的LinearLayout包含頁腳將如下所示:

<LinearLayout
        android:id="@+id/botom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="#fff"
        android:gravity="bottom"
        android:layout_alignParentBottom="true" >
        <include layout="@layout/footer" />
    </LinearLayout>

對於ScrollView:

 <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_above="@+id/botom">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM