4

textview オブジェクトに不要なパディングがあります。下の写真の右上の textview だけに注目してみましょ1.486.91。私の要件は、テキストが独自の境界の右上隅に描画されるため、 に「上揃え」され、DIJACORに「右揃え」されること+0.01です。試してみましたがgravity="top|right"、 役に立ちませんでした。2 番目のケースでは、レンダリング結果の の後に余分なスペースが表示され、下のように整列されません。これを修正する方法について誰でも私と共有できますか? ありがとう!includeFontPadding=falsepaddings=06.91-0.01

グリッド ビュー オブジェクト

textView オブジェクトを定義する方法は次のとおりです。

<TextView
    android:id="@+id/priceLast"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="0dp"
    android:gravity="top|right"
    android:includeFontPadding="false"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp"
    android:singleLine="true"
    android:text="@string/price"
    android:textColor="@color/dark_green"
    android:textIsSelectable="false"
    android:textSize="24sp"
    android:textStyle="bold" />

ルート ビュー グループ:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg_card_selector"
    android:orientation="vertical"
    android:paddingBottom="8dp"
    android:paddingTop="4dp" >
4

7 に答える 7

3

ケース #2 の理由は、ほとんどのフォントでは、すべての数字の文字幅がピクセル単位で同じであるためです。したがって、数字「1」と「8」は同じ量の幅ピクセルを使用します。その理由は、数字を重ねて書くことができ、数字が常に揃うからです。これは、「4.1」のような文字列は、「4.8」よりも右側に空のピクセルが多くなることを意味します。解決策は、各数字の幅がコンパクトなフォントを使用するか、数字をビットマップにレンダリングし、右端の空でないピクセルを見つけ、ビットマップをシフトして右に揃える独自のビューを用意することです。

于 2013-11-02T16:32:01.833 に答える
2

表示されているパディングはデフォルトのフォント パディングであり、フォント サイズが異なるため、多少の不一致が生じています。

この問題を解決するには、複数のことを試すことができます。

1) TextViews (つまり、DIJACOR と 1.48 を持つもの) の高さを修正してみてください。例: android:layout_height="100dp"。必要に応じて高さを調整できます。

2) "1" の後の余分なスペース用。よく観察すると、1.48 にも "1" の後にスペースがあります。これは、フォントの「1」の後に余分なスペースがあることを意味します。私たちの仮説が正しければ、別のフォントを使用することでこの問題を解決できます。使用してみてください: android:fontFamily="sans-serif" OR android:fontFamily="sans-serif-light" OR android:fontFamily="sans-serif-condensed" OR android:fontFamily="sans-serif-thin"

于 2013-11-02T19:43:52.290 に答える
0

標準フォントであなたのレイアウトを真似ようとしましたが、DIJACOR 文字列と 1.78 のサイズの違いにより、このパディングが表示されると思います。marginTop を DIJACOR 文字列に追加してみてはいかがでしょうか? DIJACOR の列のメンバーが DIJACOR に関連している場合、marginTop を追加してもレイアウトが大幅に変わることはありません。

グラフィカル レイアウト ビューから (エミュレーターでのビューと同じ)

于 2013-11-01T13:34:25.507 に答える
0

DIJACORTextView とTextViewのパディングを削除し、1.48マージン Top を両方に追加します。paddingTopまたは、必要に応じて投稿できる線形レイアウトにそれらを追加しますmarginTop

于 2013-11-01T14:00:19.477 に答える