简体   繁体   中英

Cannot make TextView's text to be vertically aligned center

In this screenshot :

在此处输入图片说明

The text of the TextView "Vidy" is not centered vertically, I think it is at the top, here is code :

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:stretchColumns="*"
    android:shrinkColumns="*" 
    style="@style/BazarStyle" >
    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="@style/BazarTitleStyle"
        android:layout_span="5" 
        android:gravity="center"
        android:layout_marginBottom="5dp">
            <TextView 
                android:id="@+id/title_tv"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:singleLine="true"
                android:scrollHorizontally="true"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:textColor="#fff"
                android:gravity="center"
                style="@style/BazarStyleTransparent"/>
    </TableRow>
    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/tvtype"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/od_type"
            style="@style/BazarStyleLabel"
            />
        <Spinner
            android:id="@+id/type"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <requestFocus />
        </Spinner>
    </TableRow>
    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/tvproduit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/od_product"
            style="@style/BazarStyleLabel" />
        <Spinner
            android:id="@+id/produit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </TableRow>
    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/tvtsena"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/od_market"
            style="@style/BazarStyleLabel" />
        <Spinner
            android:id="@+id/tsena"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </TableRow>
    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tvqte"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/od_quantity"
            style="@style/BazarStyleLabel" />
        <EditText
            android:id="@+id/qte"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="number"/>
        <EditText
            android:id="@+id/fatra_qte"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="20dp"/>
    </TableRow>
    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/tvnorme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/od_norm"
            style="@style/BazarStyleLabel" />
        <EditText
            android:id="@+id/norme"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </TableRow>
    <TableRow
        android:id="@+id/tableRow7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/tvprix"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/od_price"
            style="@style/BazarStyleLabel" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:orientation="horizontal" >

        <EditText
            android:id="@+id/prix"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="number" />

        <TextView
            android:id="@+id/monnaie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/BazarStyleTransparent" />

        <TextView
            android:id="@+id/barre"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" / "
            style="@style/BazarStyleTransparent" />

        <EditText
            android:id="@+id/vidy_fatra"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_marginRight="20dp"
            android:inputType="text" />

        </LinearLayout>

    </TableRow>
    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/ok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_ok" />
    </TableRow>

</TableLayout>

Code of styles :

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="BazarStyle">
       <item name="android:background">@color/bg_color</item>
       <item name="android:textColor">@color/txt_color</item>
    </style>
    <style name="BazarTitleStyle">
       <item name="android:background">@color/bg_topbar_color</item>
       <item name="android:textColor">@color/txt_color</item>
    </style>
    <style name="BazarStyleTransparent">
       <item name="android:background">@null</item>
       <item name="android:textColor">@color/txt_color</item>
    </style>
    <style name="BazarStyleLabel">
       <item name="android:background">@null</item>
       <item name="android:textColor">@color/txt_color</item>
       <item name="android:layout_marginLeft">20dp</item>
    </style>
</resources>

<color name="bg_color">#6cb650</color>
    <color name="bg_topbar_color">#4d7e3a</color>
    <color name="txt_color">#FFF</color>

So how to make the text centered vertically ?

Put android:gravity="center_vertical" in TableRow with id tableRow7.......


<TableRow
        android:id="@+id/tableRow7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical" >

        <TextView
            android:id="@+id/tvprix"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="od_price"
            style="@style/BazarStyleLabel" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:orientation="horizontal" >

        <EditText
            android:id="@+id/prix"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="number" />

        <TextView
            android:id="@+id/monnaie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/BazarStyleTransparent" />

        <TextView
            android:id="@+id/barre"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" / "
            style="@style/BazarStyleTransparent" />

        <EditText
            android:id="@+id/vidy_fatra"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_marginRight="20dp"
            android:inputType="text" />

        </LinearLayout>

    </TableRow>

use below property on your textview

                android:gravity="center_vertical"

or

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:text="Check Vertical center"
        android:textSize="21sp"
        android:textStyle="bold" />

http://developer.android.com/reference/android/widget/TextView.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM