1

我正在尝试一项可能应该很简单的任务..我希望屏幕底部有一个按钮(最好是浮动的),而我在其上方有一个可滚动列表(我可以在教程中使用简单的列表视图和按钮)。但是,我的列表是一个线性布局,我用一个 SimpleCursorAdapter 和一个 viewBinder 填充。由于我使用的是此 LinearLayout,因此每个行项目都会有一个按钮,而不是屏幕底部的一个按钮。我试过用表格布局、相对布局、使用两个线性布局等来包装它。每次我每行都有一个按钮。这是因为我使用游标适配器获取数据并将其填充到列表视图中的方式吗?我需要使用“合并”吗 在我的 xml 文件中?有没有办法制作两个xml文件然后同时调用它们?我是否需要切换到 ListView 或其他显示数据的方式?这是我尝试自己开始完成的第一个应用程序,所以其中一些东西让我很吃惊。我将包含我的 LinearLayout 代码,请注意,这只是没有添加额外按钮的列表(我删除了所有失败的尝试)。因此,我希望修改下面的代码以包含一个始终浮动在屏幕底部的按钮。

<LinearLayout android:id="@+id/LinearLayout01"
          android:layout_width="290dp"
          android:layout_height="fill_parent"
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:hapticFeedbackEnabled="true">

    <Button
        android:id="@+id/BtnToClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="myClickHandler"
        android:drawableLeft="@+drawable/android_button"
        android:gravity="left|center_vertical" 
        android:background="@android:color/transparent"
        android:hapticFeedbackEnabled="true"
        android:layout_weight=".1">
    </Button>

    <TextView android:text=""
        android:id="@+id/tvViewRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"> 
     </TextView>

     <TextView android:text="@+id/text11"
        android:id="@+id/text11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"> 
     </TextView>

     <TextView
        android:id="@+id/text5" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip" 
        android:gravity="left|center_vertical" 
        android:layout_weight=".20"/> 

    <TextView
        android:id="@+id/text9"
        android:layout_column="5" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"  
        android:gravity="center|center_vertical" 
        android:layout_weight=".1"/>
    <TextView
        android:id="@+id/text10" 
        android:layout_column="6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip" 
        android:gravity="left|center_vertical" 
        android:layout_weight=".15"/>

    <TextView
        android:id="@+id/text12" 
        android:layout_column="8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:padding="3dip" 
        android:gravity="left|center_vertical" />

     <Button
        android:id="@+id/BtnToClick2"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="myClickHandler3"
        android:gravity="center|center_vertical" 
        android:background="@+drawable/coup0a"
        android:hapticFeedbackEnabled="true"
        >
     </Button>

提前致谢!-乔

4

2 回答 2

0

您需要根据需要将按钮添加为页脚或页眉。您可以尝试此代码。R.layout.header 和页脚是您必须定义的单独的 xml 布局文件。

View header =  inflater.inflate(R.layout.header,null);  
View footer =  inflater.inflate(R.layout.footer,null);   
addHeaderView(header); 
addFooterView(footer);
于 2012-06-10T01:59:58.100 回答
0

您绝对应该使用列表视图来完成这项工作。列表视图针对显示许多条目进行了高度优化。只需让您的活动从 ListActivity 扩展并创建一个布局 xml 文件,其中包含一个 ID 为“@android:id/list”的 listview 小部件,listview 活动将自动连接到该列表。您也可以在布局中自由放置其他小部件。这是一个示例布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
    <Button
        android:id="@+id/chooseOther"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/add_fav"/>
</LinearLayout>

即使您有很长的项目列表,它也有一个始终位于屏幕底部的按钮列表。

于 2012-06-10T02:02:22.297 回答