0

MultiAutocompleteTextView にスタイルを適用しようとしていますが、スタイルが適用されていないようです。

style.xml には次のものがあります (一部のみを表示):

<style name="AppTheme" parent="android:Theme.Light">
    <item name="android:buttonStyle">@style/Button</item>
    <item name="android:imageButtonStyle">@style/ImageButton</item>
    <item name="android:editTextStyle">@style/Edit</item>
    <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextView</item>
    <!-- In the line above I tried to set "android:multiAutoCompleteTextViewStyle" but that doesn't seem to work. My guess is that it is because MultiAutoCompleteTextView is a subclass of AutoCompleteTextView -->
</style>

...

<style name="AutoCompleteTextView" parent="@android:style/Widget.AutoCompleteTextView">
    <item name="android:completionHintView">@layout/completion_hint</item>
    <item name="android:background">@drawable/edit</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_marginBottom">5dp</item>
    <item name="android:layout_marginLeft">5dp</item>
    <item name="android:layout_marginRight">5dp</item>
    <item name="android:layout_marginTop">5dp</item>
    <item name="android:ems">10</item>
    <item name="android:gravity">top</item>
    <item name="android:lines">1</item>
    <item name="android:singleLine">true</item>
    <item name="android:textColor">@color/black</item>
</style>`

そして私のレイアウトファイルには次のものがあります:

<MultiAutoCompleteTextView
    android:id="@+id/multiAutoCompleteTextView1"
    android:visibility="gone" />

テーマはアプリケーション全体に適用されるため、MultiAutocompleteTextView にも適用する必要があります。しかし、アプリケーションを実行しようとすると、次のエラーが発生します。

12-03 02:00:34.398: E/AndroidRuntime(591): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.MyActivity}: java.lang.RuntimeException: Binary XML file line #37: You must supply a layout_width attribute.
4

1 に答える 1

0

テーマまたはスタイルを書き換える場合、スタイルが宣言する特定の属性のみを書き換えることができます。layout_* attr が Widget.AutoCompleteTextView で宣言されていません。指定したビューに layout_* を配置する必要があります

于 2012-12-03T01:35:32.643 に答える