使用scrollHorizo​​ntally作为样式属性

时间:2017-10-18 18:36:23

标签: android horizontal-scrolling

我有一个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;

我看不出有什么方法可以解决这个问题 - 其他人可以吗?

0 个答案:

没有答案