如何使用RelativeLayout将Listview集中在Listview中?

时间:2012-11-05 23:09:49

标签: java android relativelayout arrays

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.activity_haltestellen, R.id.tvHaltestellen, HaltestellenListe);
lvH.setAdapter(arrayAdapter);

这是设置的东西和.xml:

<?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" >

<ListView
    android:id="@+id/lvHaltestellen"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >
</ListView>

<TextView
    android:id="@+id/tvHaltestellen"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"

    />

我从数据库中获取StringArray。 那么如何将电视放在列表视图中?真是坏事

3 个答案:

答案 0 :(得分:0)

我不太确定你想做什么,但是如果你想将TextView置于RelativeLayout内,那么删除

android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"

来自电视并尝试添加类似android:layout_centarInParent="true"的内容,并在相对布局中将match_parent更改为wrap_contents

答案 1 :(得分:0)

尝试添加以下内容:android:layout_centerInParent="true"

<TextView
    android:id="@+id/tvHaltestellen"
    android:layout_centerInParent="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

答案 2 :(得分:0)

您可以将TextView锚定到ListView的顶部和底部(也可以选择左右移动,具体取决于所需的效果)。这将使TextView同样高(并且可选地宽),因此使用中心重力将文本定位在中间。

<?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" >

    <ListView
        android:id="@+id/lvHaltestellen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <TextView
        android:id="@+id/tvHaltestellen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/lvHaltestellen"
        android:layout_alignBottom="@+id/lvHaltestellen"
        android:layout_alignLeft="@+id/lvHaltestellen"
        android:layout_alignRight="@+id/lvHaltestellen"
        android:gravity="center" />

</RelativeLayout>

如果您计划为TextView添加背景颜色,则需要将其包装在另一个透明容器(例如FrameLayout)内,以避免颜色模糊显示的内容在列表中。类似的东西:

<?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" >

    <ListView
        android:id="@+id/lvHaltestellen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/lvHaltestellen"
        android:layout_alignLeft="@+id/lvHaltestellen"
        android:layout_alignRight="@+id/lvHaltestellen"
        android:layout_alignTop="@+id/lvHaltestellen" >

        <TextView
            android:id="@+id/tvHaltestellen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@android:color/black" />
    </FrameLayout>

</RelativeLayout>

或者,如果您决定让ListView填满RelativeLayout的整个高度,则无需再将TextView锚定到列表中。正如@ user1796624已经指出的那样,您可以将TextView

居中

根据您之前对别人答案的评论:

  

textview显示在listview中。

我理解您在此处要说的内容,但请注意TextView 不在<{1}}内,而是在其上面浮动