TextView填充ListView

时间:2016-01-13 14:12:07

标签: android listview

我想在包含2个或3个列表项的Listview上方显示“STATS”一词。我希望ListView位于屏幕的底部边缘,剩下的空间由“STATS”TextView填充,文本垂直和水平居中。基本上一个单词在剩下的空间的正中间漂浮着。

What I need it to look like

我无法在“拖放”布局编辑器中执行此操作,因为它在ListView中显示了8个占位符项,因此我无法正确捕捉事物的边缘。

我有ListView我想要它,但“STATS”导致问题。

我尝试过各种各样的事情(显然除了正确的事情)。这是我目前打破的布局......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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="uk.co.xxxxxxxxxxx.xxxxxxx.MainActivity"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="bottom"
    >

    <TextView
        android:id="@+id/tv_reboot_message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textAlignment="center"
        android:text="@string/stats"
        />

    <ListView
        android:id="@+id/lv_app_info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/reboot_screen_items"
        android:layout_gravity="center_horizontal|center_vertical"
        />

</LinearLayout>

我确信这样做是微不足道的,但它让我发疯了。

3 个答案:

答案 0 :(得分:1)

试试这个,效果很好

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_reboot_message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:textStyle="bold"
        android:textAlignment="center"
        android:text="STATE"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center" />

    <ListView
        android:id="@+id/lv_app_info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/reboot_screen_items"
        android:layout_gravity="bottom" />
</LinearLayout>

结果

enter image description here

答案 1 :(得分:1)

使用gravitylayout_gravity属性。

Gravity and layout_gravity

答案 2 :(得分:0)

你能试试吗?

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

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  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="uk.co.xxxxxxxxxxx.xxxxxxx.MainActivity"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  >

<TextView
    android:id="@+id/tv_reboot_message"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="30sp"
    android:textStyle="bold"
    android:textAlignment="center"
    android:gravity="center"
    android:text="STATS"
    android:layout_above="@+id/lv_app_info"
    />

<ListView
    android:id="@+id/lv_app_info"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/values"
    android:layout_alignParentBottom="true"
    android:layout_gravity="bottom"
    />

 </RelativeLayout>

您可以使用RelativeLayout填充剩余空间以显示TextView

相关问题