我有一个EditText
,我想成为一个可水平滚动的组件。
我发现我可以通过编程方式使用
来使EditText
侧的内容滚动
mEditText.setHorizontallyScrolling(true);
没问题。但是我希望这种类型的所有组件都是侧滚动,为此我将以下属性添加到EditText
的样式中:
<style name="Widget.AppCompat.EditText.SingleLine">
<item name="android:scrollHorizontally">true</item>
</style>
并将此附加到EditText
,如此:
<EditText
android:id="@+id/editText"
style="@style/Widget.AppCompat.EditText.SingleLine"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
(将android:textSize
等其他样式添加到此样式作为调试步骤生效,因此正确选择样式
即使直接将android:scrollHorizontally="true"
添加到EditText xml也不会生效。
有谁理解为什么这个特殊属性拒绝工作?
编辑1
<style name="Widget.AppCompat.EditText.SingleLine">
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium.Inverse.HorizontalScrolling</item>
</style>
<style name="TextAppearance.AppCompat.Medium.Inverse.HorizontalScrolling">
<item name="android:scrollHorizontally">true</item>
</style>
不起作用。查看它使用的TextView
来源:
a = theme.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.TextView, defStyleAttr, defStyleRes);
[...]
case com.android.internal.R.styleable.TextView_scrollHorizontally:
if (a.getBoolean(attr, false)) {
setHorizontallyScrolling(true);
}
break;
我看不出有什么方法可以解决这个问题 - 其他人可以吗?