我开发了一个包含很多项目的应用程序列表视图。在每个项目中,我都有背景的textview。如何将文本移动到textview的中心?
我的商品代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_marginTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lesson_name"
android:id="@+id/tv_lesson"
android:layout_gravity="center_horizontal|top"
android:textAlignment="center"
android:textStyle="normal|bold"
android:textSize="20sp"
tools:targetApi="jelly_bean_mr1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Время"
android:id="@+id/tv_time"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:layout_marginBottom="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/teacher_name"
android:id="@+id/tv_teacher"
android:layout_gravity="center_horizontal|bottom"
android:textStyle="italic" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Кабинет"
android:id="@+id/tv_cab"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginTop="4dp"
android:layout_marginBottom="17dp" />
<TextView
android:layout_width="45dp"
android:layout_height="45dp"
**android:id="@+id/tv_number"**
android:layout_gravity="center_vertical"
android:background="@drawable/oval"
android:textIsSelectable="false"
android:textStyle="normal|bold"
android:textSize="40sp"
android:layout_marginLeft="10dp"
android:text="1"
android:textColor="#ffffff"
tools:targetApi="jelly_bean_mr1"
android:textAlignment="inherit" />
</FrameLayout>
我的文字:
有什么建议吗?
P.S我已经尝试了android gravity = center,我的textview移动到列表项的中心
答案 0 :(得分:6)
将以下属性添加到TextView
:
android:gravity="center"
应该是这样的:
<TextView
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical"
android:gravity="center"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:background="@drawable/oval"
android:textIsSelectable="false"
android:textStyle="normal|bold"
android:textSize="40sp"
android:text="1"
android:textColor="#000000"/>
答案 1 :(得分:1)
更改您的
Text View
。
android:layout_gravity
属性将移动您的完整Text View
。并且android:gravity
只会移动Text View
中的内容,这是他们之间的主要区别。
<TextView
android:id="@+id/tv_number"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical"
android:gravity="center"
android:layout_marginLeft="10dp"
android:background="#000000"
android:text="2222"
android:textAlignment="inherit"
android:textColor="#ffffff"
android:textIsSelectable="false"
android:textSize="40sp"
android:textStyle="normal|bold"
tools:targetApi="jelly_bean_mr1" />
答案 2 :(得分:0)
基本上这是因为默认的字体填充,要删除默认填充,您应该在TextView中的布局xml中添加以下代码: 机器人:includeFontPadding =&#34;假&#34; 例如:
<TextView
android:id="@+id/tv_number"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:layout_marginLeft="10dp"
android:background="#000000"
android:text="2222"
android:textAlignment="inherit"
android:textColor="#ffffff"
android:textIsSelectable="false"
android:textSize="40sp"
android:textStyle="normal|bold"
android:includeFontPadding="false"
tools:targetApi="jelly_bean_mr1" />
答案 3 :(得分:0)
将TextView的“gravity”标记更改为“center”
答案 4 :(得分:0)
使用以下属性:
android:gravity="center"
答案 5 :(得分:0)
尝试这种方式,为背景创建一个xml
的test.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#f2f" />
<size
android:height="150dp"
android:width="150dp" />
</shape>
</item>
</selector>
activity_main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:gravity="center"
android:background="@drawable/test"
android:textSize="15dp"
android:textColor="#ffffff"
/>
</LinearLayout>
<强>输出强>