243

TextViewテキストに aがある場合\n、右側には 2 つsingleLine TextViewの があり、1 つが下にあり、間にスペースはありません。3つすべてに次のように設定しましたTextView

android:lineSpacingMultiplier="1" 
android:lineSpacingExtra="0pt" 
android:paddingTop="0pt" 
android:paddingBottom="0pt"

左の最初の行は、TextView右上と完全に一致していTextViewます。

左の 2TextView行目は、右下の 2 行目よりも少し高くなっていTextViewます。

sの上部と下部に何らかの隠しパディングがあるようですTextView。どうすればそれを削除できますか?

4

20 に答える 20

586
setIncludeFontPadding (boolean includepad)

またはXMLこれは次のようになります。

android:includeFontPadding="false"

TextViewに追加の上下パディングを含めて、通常の上昇と下降を超えるアクセントの余地を作るかどうかを設定します。デフォルトは真です。

于 2011-03-03T09:48:55.580 に答える
42

あなたの痛みが分かります。私は上記のすべての答えを試しましたがsetIncludeFontPadding、それは私にとって何の役にも立ちませんでした。

私の解決策は? layout_marginBottom="-3dp"TextViewあなたに底の解決策を与えます、BAM!

ただし、-3dponはlayout_marginTop失敗します。

于 2011-09-23T05:57:04.107 に答える
26

この属性(ConstraintLayout)を使用してみることができます:layout_constraintBaseline_toBaselineOf

このような:

app:layout_constraintBaseline_toBaselineOf="@+id/textView"

ここに画像の説明を入力

ここに画像の説明を入力

于 2018-10-31T09:08:02.173 に答える
13

これも私を悩ませました。私が見つけた答えは、TextView ではなく、実際にはフォント自体に余分なスペースがあるということでした。これは、ドキュメント発行のバックグラウンドから来ており、タイポグラフィ要素に対する Android の制御範囲が限られているため、かなり苛立たしいことです。この問題が発生しないカスタム書体 (再配布が許可されている Bitstream Vera Sans など) を使用することをお勧めします。具体的にそうなるかどうかはわかりませんが。

于 2011-01-22T17:01:54.663 に答える
4

私の要件は既存の textView get from をオーバーライドすることであるため、他の答えをfindViewById(getResources().getIdentifier("xxx", "id", "android"));単純に試すことはできません。onDraw()

しかし、私は問題を修正するための正しい手順を見つけただけです。これが Layout Inspector の最終結果です。

ここに画像の説明を入力

私が望んでいたのは単に上部のスペースを削除することなので、下部のスペースを削除するために他のフォントを選択する必要はありません。

これを修正するための重要なコードは次のとおりです。

Typeface mfont = Typeface.createFromAsset(getResources().getAssets(), "fonts/myCustomFont.otf");
myTextView.setTypeface(mfont);

myTextView.setPadding(0, 0, 0, 0);

myTextView.setIncludeFontPadding(false);

最初のキーはカスタム フォント「fonts/myCustomFont.otf」に設定されています。これは、上部ではなく下部にスペースがあります。これは、otf ファイルを開いて Android Studio の任意のフォントをクリックすることで簡単に把握できます。

ここに画像の説明を入力

ご覧のとおり、下部のカーソルには余分なスペースがありますが、上部にはありません。これで問題が解決しました。

2 番目のキーは、単純にコードをスキップできないことです。そうしないと、機能しない可能性があります。そのため、回答が機能しているとコメントする人もいれば、機能していないとコメントする人もいます。

それらの 1 つを削除するとどうなるかを説明しましょう。

なしsetTypeface(mfont);:

ここに画像の説明を入力

なしsetPadding(0, 0, 0, 0);:

ここに画像の説明を入力

なしsetIncludeFontPadding(false);:

ここに画像の説明を入力

それらのうち3つがない場合(つまり、オリジナル):

ここに画像の説明を入力

于 2017-11-02T14:05:12.210 に答える
3

この問題は次の方法で解決できると思います。

 <TextView
        android:id="@+id/leftText"
        android:includeFontPadding="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30dp"
        android:text="Hello World!\nhello world" />

 <TextView
        android:id="@+id/rightUpperText"
        android:includeFontPadding="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/leftText"
        android:layout_alignTop="@+id/leftText"
        android:textSize="30dp"
        android:text="Hello World!" />

 <TextView
        android:id="@+id/rightLowerText"
        android:includeFontPadding="false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/leftText"
        android:layout_below="@+id/rightUpperText"
        android:textSize="30dp"
        android:text="hello world" />

それらは結果です:

スクリーンショット-1

スクリーンショット-3

rightLowerText の特殊文字の行は、leftText の 2 行目より少し上に見えますが、それらのベースラインは調整されています。

于 2017-03-06T03:31:12.800 に答える
0

左側のテキスト ビューの下部を 2 番目の右側のテキスト ビューの下部に合わせてみてください。

于 2011-01-22T15:44:16.100 に答える
0

私の知る限り、これはほとんどのウィジェットに固有のものであり、「パディング」の量は電話メーカーによって異なります。このパディングは、9 パッチ イメージ ファイル内のイメージ ボーダーとイメージの間の実際の空白です。

たとえば、私の Droid X では、スピナー ウィジェットはボタンより余分な空白を取得するため、スピナーをボタンにインラインで配置すると見苦しくなりますが、妻の電話では、同じアプリケーションに同じ問題はなく、見栄えがよくなります!

唯一の提案は、独自の 9 個のパッチ ファイルを作成し、それらをアプリケーションで使用することです。

ああ、Androidの痛み。

編集: パディングと空白を明確にします。

于 2011-01-22T15:58:37.183 に答える
-1

これを参照してください:

ImageView と EditText を水平方向に揃えます

EditText の背景画像には、パディングも追加する透明なピクセルがいくつかあるようです。

解決策は、EditText のデフォルトの背景を別のものに変更することです (または何も変更しませんが、EditText の背景がないことはおそらく受け入れられません)。これは、android:background XML 属性を設定することで作成できます。

android:background="@drawable/myEditBackground"
于 2012-06-18T09:54:34.247 に答える