在ListActivity中,我必须为我的主要列表对300dp的高度进行硬编码,因为它会占据整个屏幕并按下我的2个按钮(显示屏幕底部的strong>和取消:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="de.afarber.mynotification.MainActivity" >
<ListView
android:id="@android:id/list"
android:dividerHeight="1px"
android:layout_width="match_parent"
android:layout_height="300dp" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:text="@string/no_beacons_found" />
<Button android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:onClick="showNotification"
android:text="@string/show_notification" />
<Button android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:onClick="cancelNotification"
android:text="@string/cancel_notification" />
</LinearLayout>
这导致以下屏幕截图:
但我仍然不满意,因为我希望在屏幕底部对齐2个按钮。我希望列表占据按钮上方的屏幕其余部分。最后,我想知道如何正确放置空文本。
请建议我做什么,在这种情况下使用哪种布局。
答案 0 :(得分:1)
试试这个。我所做的是将所有按钮放到另一个布局中,该布局应该与页面底部对齐。然后我告诉列表使用layout_above
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="de.afarber.mynotification.MainActivity">
<ListView
android:id="@android:id/list"
android:dividerHeight="1px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/buttons"
/>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<TextView
android:id="@+id/emptyText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF0000"/>
<Button
android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:onClick="showNotification"
android:text="TEXT"/>
<Button
android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:onClick="cancelNotification"
android:text="TEXT"/>
</LinearLayout>
</RelativeLayout>
对于空文本,只需跳过声明中的android:text="TEXT"
。
答案 1 :(得分:0)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="de.afarber.mynotification.MainActivity" >
<ListView
android:id="@android:id/list"
android:dividerHeight="1px"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp"
android:background="#FF0000"
android:text="@string/no_beacons_found" />
<Button android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:onClick="showNotification"
android:text="@string/show_notification" />
<Button android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:onClick="cancelNotification"
android:text="@string/cancel_notification" />