21

スタイルのテーマで初期レイアウトをクリーンアップしようとするまで、2.1 以降で動作するアプリがありました。これで、アプリは、レイアウト内の最初の EditText ビューを指す「layout_height 属性を指定する必要があります」というエラー メッセージで起動しなくなりました。

すべての EditText で正常に動作していた 'layout_height=30dp" を ... item name="android:layout_height">30dp< ... テーマ経由で参照されるスタイルに移動できないのはなぜですか?

このように抽象化した他のスタイル効果は事実上すべて正常に機能しています。

[これは、EditText ではなく、LinearLayout に対する何らかのスタイル付きオーバーライドでなければならないことを知っても驚かないでしょう。または、ウィジェットではなく、ビューのスタイル設定されたアイテムになる必要があります。知らない。]

アイデア?誰?見過ごされがちなことは何ですか?ご提案ありがとうございます。

AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
<application    android:label="xxx"
    android:icon="@drawable/xxx" >

<activity   android:name="DataEntry"
    android:label="xxx"
    android:theme="@style/xxx_theme.A" >
...

xxx_theme.A.xml

<style name="xxx_theme" parent="@android:Theme" >
  <item name="android:windowNoTitle">true</item>
</style>

<style name="xxx_theme.A" >
  <item name="android:textViewStyle">@style/xxx_TextView_widget</item>
  <item name="android:editTextStyle">@style/xxx_EditText_widget</item>
  <item name="android:checkboxStyle">@style/xxx_CheckBox_widget</item>
  <item name="android:radioButtonStyle">@style/xxx_Radio_widget</item>
</style>

<style name="xxx_EditText_widget" parent="@android:style/Widget.EditText" >
  <item name="android:textSize">9dp</item>
  <item name="android:layout_height">30dp</item>
  <item name="android:paddingLeft">8dp</item>
  <item name="android:paddingTop">1dp</item>
  <item name="android:paddingBottom">1dp</item>
  <item name="android:textColorHint">@color/texthint</item>
  <item name="android:singleLine">true</item>
  <item name="android:selectAllOnFocus">true</item>
  <item name="android:inputType">textNoSuggestions</item>
</style>
...
4

2 に答える 2

9

あなたは あなたのスタイルを持っていますが、持って<item name="android:layout_height">30dp</item> いません。android:layout_width

両方が必要です。

于 2011-04-12T23:38:13.277 に答える