Android - XML按钮丢失了吗?

时间:2011-01-14 12:27:04

标签: android xml button

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bkgrnd">
    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <ImageView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ImageView_MenuHeader"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/logo"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"></ImageView>
        <TextView
            android:id="@+id/TextView01"
            android:layout_height="wrap_content"
            android:text="@string/admin"
            android:textSize="@dimen/screen_title_size"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="10"
            android:layout_width="wrap_content"
            android:layout_gravity="fill_horizontal|center"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:shadowColor="@android:color/white"
            android:textColor="@color/title_color"></TextView>
        <ImageView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ImageView_MenuHeader2"
            android:layout_height="wrap_content"
            android:src="@drawable/logo"
            android:layout_gravity="right|center_vertical"
            android:layout_width="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"></ImageView>
    </RelativeLayout>    
    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:isScrollContainer="true"
        android:scrollbars="vertical"
        android:scrollbarAlwaysDrawVerticalTrack="true">
        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">     
            <Spinner
                android:id="@+id/Spinner_Table"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:drawSelectorOnTop="true"></Spinner>
             <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="@dimen/help_text_size"
                android:textStyle="bold"
                android:gravity="center"
                android:id="@+id/Blank"></TextView>
            <TextView  
                android:id="@+id/admintable" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"></TextView>
            </LinearLayout>
    </ScrollView>
    <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent">  
             <Button 
                android:id="@+id/Logout" 
                android:text="@string/Logout" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"></Button>
    </RelativeLayout>
 </LinearLayout>

所有上面的xml都在一个线性布局中...问题是当文本视图管理表在应用程序中获得写入数据时,显示了大量数据...数据显示正常...然而,当用户滚动到屏幕底部时,他们应该看到注销按钮,但它没有显示?

2 个答案:

答案 0 :(得分:1)

尝试将ScrollView layout_height设置为静态内容,例如60dp,并将layout_weight设置为1.0,这会使其扩展到最大值而不会离开屏幕。

<ScrollView
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:layout_weight="1.0"
    android:isScrollContainer="true"
    android:scrollbars="vertical"
    android:scrollbarAlwaysDrawVerticalTrack="true">
    ...
</ScrollView>

然而,这应该导致Logout按钮始终显示在ScrollView下面。

为了让按钮显示在ScrollView的底部,请尝试移动RelativeLayout内的ScrollView并将其嵌套在另一个LinearLayout中,如下所示:< / p>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bkgrnd">
    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        ... your header views ...
    </RelativeLayout>    
    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:isScrollContainer="true"
        android:scrollbars="vertical"
        android:scrollbarAlwaysDrawVerticalTrack="true">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">     
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">     
                ... data you load ...
            </LinearLayout>
            <RelativeLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent">  
                 <Button 
                    android:id="@+id/Logout" 
                    android:text="@string/Logout" 
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"></Button>
            </RelativeLayout>
        </LinearLayout>
    </ScrollView>
 </LinearLayout>

答案 1 :(得分:0)

一些意见:

您无需像这样定义小部件:

 <Button 
                android:id="@+id/Logout" 
                android:text="@string/Logout" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"></Button>

你可以这样做:

 <Button 
                android:id="@+id/Logout" 
                android:text="@string/Logout" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"/>

从我的观点来看,你遇到的问题是ScrollView占用了所有空间。

首先尝试使用RelativeLayout定义Button并告诉ScrollView android:layout_aboveRelativeLayout