如何在编辑文本中为滚动条添加边距
How to add margin to scrollbar in edit text
我正在尝试为 editText
内部的滚动条添加一些边距,但我不确定该怎么做,因为滚动条位于 editText
本身内部(“scrollbars=水平的”)。自动出现的方式离文字太近了,需要离得远一点,有办法吗?
我有一个滚动条的自定义样式,它看起来已经和图片中的一样了,除了距离,也许有办法调整那里的边距?到目前为止,只有右边距有效,顶部和底部的边距使栏消失。
它需要看起来像这样:
XML:
<EditText
android:id="@+id/edit_text"
style="@style/Field"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/size_2"
android:layout_marginTop="@dimen/size_1"
android:layout_marginBottom="@dimen/size_1"
android:autofillHints="@null"
android:clickable="true"
android:duplicateParentState="true"
android:focusable="true"
android:inputType="text"
android:scrollbars="horizontal"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@drawable/scrollbar"
android:scrollbarTrackHorizontal="@drawable/scrollbar_track"
android:gravity="center_vertical"/>
滚动条缩略图:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="16dp"> <!-- Margin -->
<shape>
<solid android:color="@color/specific_border_2" />
<corners android:radius="4dp" />
</shape>
</item>
</layer-list>
滚动条轨迹:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="16dp"> <!-- Margin -->
<shape>
<solid android:color="#E2E0EB" />
<stroke
android:width="1dp"
android:color="@color/specific_background_3" />
<size android:width="15dp" />
<corners android:radius="4dp" />
</shape>
</item>
</layer-list>
您可以设置 android:scrollbarStyle="outsideOverlay"
并使用 android:paddingBottom
控制滚动条的边距
演示:
<EditText
android:id="@+id/name_text"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:fadeScrollbars="false"
android:paddingBottom="8dp"
android:scrollbarAlwaysDrawHorizontalTrack="false"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@drawable/scrollview_thumb"
android:scrollbars="horizontal" />
scrollview_thumb.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#C2C3C3" />
<corners android:radius="15dp" />
<size android:width="5dp" />
</shape>
我正在尝试为 editText
内部的滚动条添加一些边距,但我不确定该怎么做,因为滚动条位于 editText
本身内部(“scrollbars=水平的”)。自动出现的方式离文字太近了,需要离得远一点,有办法吗?
我有一个滚动条的自定义样式,它看起来已经和图片中的一样了,除了距离,也许有办法调整那里的边距?到目前为止,只有右边距有效,顶部和底部的边距使栏消失。
它需要看起来像这样:
XML:
<EditText
android:id="@+id/edit_text"
style="@style/Field"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/size_2"
android:layout_marginTop="@dimen/size_1"
android:layout_marginBottom="@dimen/size_1"
android:autofillHints="@null"
android:clickable="true"
android:duplicateParentState="true"
android:focusable="true"
android:inputType="text"
android:scrollbars="horizontal"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@drawable/scrollbar"
android:scrollbarTrackHorizontal="@drawable/scrollbar_track"
android:gravity="center_vertical"/>
滚动条缩略图:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="16dp"> <!-- Margin -->
<shape>
<solid android:color="@color/specific_border_2" />
<corners android:radius="4dp" />
</shape>
</item>
</layer-list>
滚动条轨迹:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="16dp"> <!-- Margin -->
<shape>
<solid android:color="#E2E0EB" />
<stroke
android:width="1dp"
android:color="@color/specific_background_3" />
<size android:width="15dp" />
<corners android:radius="4dp" />
</shape>
</item>
</layer-list>
您可以设置 android:scrollbarStyle="outsideOverlay"
并使用 android:paddingBottom
演示:
<EditText
android:id="@+id/name_text"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:fadeScrollbars="false"
android:paddingBottom="8dp"
android:scrollbarAlwaysDrawHorizontalTrack="false"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbHorizontal="@drawable/scrollview_thumb"
android:scrollbars="horizontal" />
scrollview_thumb.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#C2C3C3" />
<corners android:radius="15dp" />
<size android:width="5dp" />
</shape>