3

アプリの作成が完了しました。ここで、すべての editTexts をリセットして、コンテンツをラップするのではなく、レイアウトの幅を親として塗りつぶしたいと考えています。

android:layout_width="fill_parent"

現在、私のすべてのeditTextsは

android:layout_width="wrap_content"

各レイアウトで個別に行うのではなく、スタイル xml ファイルでこれを行う方法はありますか? 私は現在これをstyles.xmlとして持っています

<style name="AppTheme" parent="android:Theme.Light">  
    <item name="android:fontFamily">Verdana</item>
    <item name="android:editTextStyle">@style/EditTextStyle</item>
</style>

<style name="EditTextStyle" parent="@android:style/Widget.EditText">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:textColor">#808080</item>
</style>

しかし、layout_width を指定する必要があるという例外が発生します。これは私の例外です:

07-15 11:13:34.872: E/AndroidRuntime(1195): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.passwordkeeper.ui/com.passwordkeeper.ui.ActivityLogin}: java.lang.RuntimeException: Binary XML file line #29: You must supply a layout_width attribute.

簡単な方法はありますか、それともすべての editText の属性を個別に変更する必要がありますか?

4

7 に答える 7

4

これを試すことができます。カスタム テーマを呼び出すために変更する必要があるマニフェスト ファイルの部分を次に示します (ここで呼び出されるカスタム テーマは AppTheme です。

<application android:name="YourApplication"
android:theme="@style/AppTheme" >

次に、ファイル styles.xml で、次のカスタム テーマを作成してカスタマイズします。

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
 <item name="android:typeface">YourTypeFace</item>
</style>

スタイル内に必要なパラメータを追加できます。これにより、すべてのテキストビューにスタイルが適用されます。

于 2013-07-15T06:42:20.117 に答える
2

残念ながら、テーマからレイアウト属性 (layout_*) を設定することはできません (レイアウト パラメータのドキュメントAndroid フレームワーク エンジニアからのこの回答を参照してください)。各要素にそれらを設定するか、スタイルにレイアウト属性を設定して、各要素が次のようにスタイルを参照できるようにする必要があります。

<Button style="@style/ButtonBig" android:text="my text" />

ここで、ButtonBig は次のように定義されます。

<style name="ButtonBig" parent="android:Widget.Holo.Light.Button">
    <item name="android:textSize">20sp</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">100dp</item>        
</style>
于 2014-10-09T14:27:23.487 に答える
0

layout_widthビューごとに個別に指定する必要があります。逃げる方法はありません。オブジェクトを作成し、LayoutParamsその幅と高さを設定し、すべての EditText のように設定することができます

textView1.setLayoutParams(lParams);
textView2.setLayoutParams(lParams);
...
于 2013-07-15T06:24:27.123 に答える