摆脱TextView的边缘

时间:2016-07-07 09:59:06

标签: android layout textview

这种布局:

<?xml version="1.0" encoding="utf-8"?>
<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:textSize="90sp"
        android:text="5000"
        android:id="@+id/textView"
        android:layout_gravity="center"
        />
</LinearLayout>

产生以下内容:

enter image description here

我想摆脱上下边距。它们首先来自哪里?也许某些字体/语言中的某些字母。

已经有thread for this question,但没有一个答案真正适用于所有情况,或者解决方案都是黑客攻击。必须有一个简单的方法。

来自主题的第一个想法: android:includeFontPadding="true"(不会改变任何内容) 来自主题的第二个想法: android:height="90sp"(至少删除底部边距)

所以,我改变了关于这些想法的布局:

<?xml version="1.0" encoding="utf-8"?>
<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:textSize="90sp"
        android:text="5000"
        android:id="@+id/textView"
        android:layout_gravity="center"
        android:includeFontPadding="true" <!-- idea 1 -->
        android:height="90sp" <!-- idea 2 -->
     />
</LinearLayout>

仍然会占据上限:

enter image description here

来自主题的第三个想法: android:layout_marginTop="-12sp" 如果添加此属性,它至少会根据需要显示。但-12sp似乎对我来说是如此武断。我只是通过反复试验来调整这个值,我不喜欢这样。

这对我来说似乎不是一个干净的解决方案。这是一件非常简单的事情,我简直无法相信Android如何能够如此努力,你必须使用黑客。

那里有干净的解决方案吗?

2 个答案:

答案 0 :(得分:-1)

使用以下语法以编程方式设置文本大小,并在dimes文件中设置所需的大小。

textView.setTextSize(getResources().getDimension(R.dimen.textsize));

根据您的需要在代码下方设置填充

yourTextView.setPadding(0, 10, 0, 0);

答案 1 :(得分:-1)

将Linearlayout和TextView填充和边距设置为0dp。应该工作。

将这些添加到两个视图中:

android:padding="0dp"
android:layout_margin="0dp"