簡體   English   中英

如何使用RelativeLayout將Textview置於Listview內部居中?

[英]How to center Textview inside Listview using RelativeLayout?

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。 那么如何將電視置於listview內部? 真的不好

我不太確定要做什么,但是如果要在RelativeLayout居中放置TextView ,請刪除

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

從電視上嘗試添加android:layout_centarInParent="true" ,然后在相對布局中將match_parent更改為wrap_contents

嘗試添加此代碼: android:layout_centerInParent="true"

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

您可以將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 ,而是浮動在它之上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM