web-dev-qa-db-ja.com

なぜスタイルにlayout_widthとlayout_heightを設定すべきではないのですか?

アイテムラベルとして機能するTextViewがたくさんある場合、それらに共通するすべてのものをスタイルに抽出でき、レイアウトでのみ使用できると思いました

<TextView style="@style/label" Android:text="Foo"/>
<TextView style="@style/label" Android:text="Bar"/>

次のようなスタイルで:

<style name="label">
    <item name="Android:layout_width">wrap_content</item>
    <item name="Android:layout_height">wrap_content</item>
</style>

しかし、これを行うと、エミュレーターとデバイスで正常に動作しますが、Android XMLエディターは"<TextView>" does not set the required layout_height attribute.なぜこの警告が報告されるのか、何らかの理由がありますか?

29
Axarydax

プロジェクトをクリーンアップしようとしましたか?

幅と長さについては、一部のXMLファイルでも同じものを使用しています。これは私のアプリで作業している例です、あなたは見ることができます:

<TextView
    Android:id="@+id/viewdescription"
    Android:textIsSelectable="true"
    Android:layout_below="@+id/rating_bar_view"
    Android:minLines="8"
    style="@style/description" />

そしてXML:

<style name="description">
   <item name="Android:layout_gravity">center_horizontal</item>
   <item name="Android:inputType">textMultiLine</item>
   <item name="Android:layout_width">fill_parent</item>
   <item name="Android:layout_height">wrap_content</item>     
   <item name="Android:textSize">14sp</item>
   <item name="Android:textColor">@color/Black</item>
   <item name="Android:layout_marginRight">8dp</item>
   <item name="Android:layout_marginLeft">8dp</item>
10
Yoann Hercouet

Build > Clean Projectを試みた後も、レイアウトエディターで同じ問題が発生していました。私の完全な再起動IDE私のために問題を解決しました。

3
jterry

古いトピックですが、それでも:)

幅と高さをスタイルに設定することは良い考えではないと思います。基本的にはコンパイルして通常は機能しますが、レイアウトが複雑になったり、インクルードされたりするなど、問題が発生する状況が発生しました。考えてみると、そこに置いても意味がありません。

レイアウトごとに異なる値が必要な場合は、@ dimenを簡単に使用できます。また、自分のスタイルを使用している他の人にとっては、これはかなり驚くべきことです。通常は、スタイルで色、サイズ、動作を設定する必要がありますが、サイズは重要ではありません。

スタイルがどのような状況で使用されるかは決してわかりません。これはこれらの臭いものの1つにすぎません。

0
bio007

私はこれを試しましたが、うまくいきます。

 <EditText
        Android:id="@+id/edt_mobile_no"
        style="@style/login_input_fields"
        Android:hint="@string/hint_mobile"
        Android:inputType="phone" />

以下はEditTextのスタイルです

<style name="login_input_fields">
    <item name="Android:layout_width">match_parent</item>
    <item name="Android:layout_height">40dp</item>
    <item name="Android:layout_marginBottom">10dp</item>
    <item name="Android:background">@drawable/bg_curved_white_border</item>
    <item name="Android:paddingRight">10dp</item>
    <item name="Android:paddingLeft">10dp</item>
    <item name="Android:textColor">@Android:color/white</item>
    <item name="Android:textColorHint">@color/underline</item>
    <item name="Android:textSize">16sp</item>
    <item name="Android:typeface">monospace</item>
</style>
0
Raja Jawahar