【问题标题】:Android unwanted padding on top and bottom with TextView使用 TextView 在顶部和底部添加 Android 不需要的填充
【发布时间】:2016-08-08 23:19:00
【问题描述】:

我试图在圆形进度条中放置两个文本视图,如下图所示。这两个文本应与圆形进度条的中心对齐。

但是文本视图中不需要的填充阻止我将文本对齐到圆形进度条的中心。这就是我得到的。

这是我的布局文件:

 <FrameLayout
            android:id="@+id/onboarding_activity_progress_layout"
            android:layout_gravity="center_horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="10dp">

            <com.locationlabs.finder.android.core.ui.CircularProgressBar
                  android:id="@+id/onboarding_activity_progress_bar"
                  android:layout_gravity="center"
                  android:padding="10dp"
                  android:layout_width="120dp"
                  android:layout_height="120dp"
                  app:progressColor="@color/progress_bar_color"
                  app:backgroundColor="@color/progress_bar_background_color"
                  app:progressBarWidth="10dp"
                  tools:progress="60"/>
            <LinearLayout
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="vertical"
                  android:includeFontPadding="false"
                  android:layout_gravity="center">

                <TextView
                      android:id="@+id/number_of_remaining_steps"
                      style="@style/OnboardingNumberOfRemainingStepText"
                      tools:text="2"/>

                <TextView
                      android:id="@+id/remaining_number_of_steps"
                      style="@style/OnboardingRemainingStepText"
                      tools:text="steps left"/>

            </LinearLayout>
        </FrameLayout>

样式如下:

<style name="OnboardingNumberOfRemainingStepText">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">center_horizontal</item>
        <item name="android:fontFamily">sans-serif</item>
        <item name="android:textSize">40sp</item>
        <item name="android:textColor">@color/dark_grey</item>
        <item name="android:includeFontPadding">false</item>
    </style>

  <style name="OnboardingRemainingStepText">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">center_horizontal</item>
        <item name="android:fontFamily">sans-serif-light</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">@color/dark_grey</item>
        <item name="android:textStyle">normal</item>
    </style>

有人告诉我android:includeFontPadding 可以帮助减少填充,但没有太大帮助。我也尝试使用带有 Spannable 的单个 textView,但我得到了几乎相似的结果。我尝试了负边距,但这没有用,而且也不可靠。

【问题讨论】:

  • 我认为是 TextSize,请尝试将其设置为更低的值。
  • @MikeM 我已经尝试过使用填充 0dp 但它没有帮助。 @VeereshCharantimath 我不想降低textSize
  • 您是否尝试将保存文本视图的线性布局的宽度设置为 120dp?
  • @Francesc 它没有帮助。它将文本向上移动一点,并与圆形进度条重叠,两个文本视图之间的填充仍然相同。
  • 你试过this吗?包装一个 TextView 并覆盖 onDraw 以删除顶部和底部空间。

标签: android android-layout textview


【解决方案1】:

当您将 TextView 的样式属性传输到 XML 时,TextView 可能会以意外的方式呈现。这是因为 TextView 的默认样式应用在布局文件中,当您在其中使用 style 属性时,该布局文件会被覆盖。

您可以尝试在为 TextView 定义的样式中使用 parent="android:TextAppearance",以确保继承 TextView 的预定义样式。

例子:

让我知道它是否对你有用!

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 2012-07-15
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    相关资源
    最近更新 更多