androidでstyleでレイアウトファイルを簡略化します.
21393 ワード
文章の出所:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0516/1617.html
Androidの開発はiosに対して大きな利点があります.それはxmlを通してレイアウトを書くことができます.また配置が柔軟で、多種類のスクリーンに適応できます.しかし、時間が長くなると、xmlの中に重複コードが多すぎることが分かります.本当に恨みました.コントロールを増やすたびに、望まないように書きます.
1
2
1
2
3
4
これらの重複した属性の定義をスタイルファイルに書いてもいいです.コントロールが16 dipの白いフォント、背景が煋0033 FFのスタイルを必要とするなら、これらの属性定義を含むスタイルを引用すればいいです.
先にスタイルでこれらの重複属性をどう設定するかを見てください.
valuesでstyle.xmlを新規作成します.
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上記の例では、
Androidの開発はiosに対して大きな利点があります.それはxmlを通してレイアウトを書くことができます.また配置が柔軟で、多種類のスクリーンに適応できます.しかし、時間が長くなると、xmlの中に重複コードが多すぎることが分かります.本当に恨みました.コントロールを増やすたびに、望まないように書きます.
1
2
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
この二つの行は、コントロールが16 dipの白いフォントであり、背景が胫0033 FFであり、内容が真ん中である場合、各buttonにこのような属性を加えなければなりません.1
2
3
4
android:textColor=
"#FFFFFF"
android:textSize=
"16dip"
android:background=
"#0033FF"
android:gravity=
"center"
うるさいですか?sbじゃないですか?これらの重複した属性の定義をスタイルファイルに書いてもいいです.コントロールが16 dipの白いフォント、背景が煋0033 FFのスタイルを必要とするなら、これらの属性定義を含むスタイルを引用すればいいです.
先にスタイルでこれらの重複属性をどう設定するかを見てください.
valuesでstyle.xmlを新規作成します.
1
2
3
4
5
6
7
8
9
10
11
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<resources>
<style name=
"white_blue_button"
>
<item name=
"android:layout_width"
>wrap_content</item>
<item name=
"android:layout_height"
>wrap_content</item>
<item name=
"android:textSize"
>16dip</item>
<item name=
"android:textColor"
>
#FFFFFF</item>
<item name=
"android:gravity"
>center</item>
<item name=
"android:background"
>
#0033FF</item>
</style>
</resources>
私達のレイアウトファイルに戻ってボタンの中にスタイルを設定すればいいです.1
2
3
4
white_blue_button
<Button
style=
"@style/white_blue_button"
android:text=
" "
上のstyle.xmlファイルでは/>
というスタイルのセットだけを定義していますが、styleでは複数のスタイルを異なるコンポーネントに使用することもできます.次のstyleファイルでは、スタイルのセットをbuttonに定義し、ImageViewにスタイルを定義しました.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
white_blue_button
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<resources>
<style name=
"homebtn"
>
<item name=
"android:layout_width"
>wrap_content</item>
<item name=
"android:layout_height"
>wrap_content</item>
<item name=
"android:textSize"
>20sp</item>
<item name=
"android:textColor"
>
#FFFFffff</item>
<item name=
"android:gravity"
>center</item>
<item name=
"android:layout_marginTop"
>15dip</item>
<item name=
"android:layout_centerHorizontal"
>
true
</item>
<item name=
"android:background"
>@drawable/selector</item>
</style>
<style name=
"homeiv"
>
<item name=
"android:layout_width"
>wrap_content</item>
<item name=
"android:layout_height"
>wrap_content</item>
<item name=
"android:layout_marginTop"
>15dip</item>
<item name=
"android:layout_centerHorizontal"
>
true
</item>
これは複数のパターンの例です.違ったスタイルにnameを加えるだけでいいです.上記の例では、
</style>
は「</resources>
」を完全に継承していることが分かりました."homebtn"
homeiv" , :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<resources>
<style name=
"homeiv"
>
<item name=
"android:layout_width"
>wrap_content</item>
<item name=
"android:layout_height"
>wrap_content</item>
<item name=
"android:layout_marginTop"
>15dip</item>
<item name=
"android:layout_centerHorizontal"
>
true
</item>
<item name=
"android:background"
>@drawable/home</item>
</style>
<style name=
"homebtn"
parent=
"@style/homeiv"
>
<item name=
"android:textSize"
>20sp</item>
<item name=
"android:textColor"
>
#FFFFffff</item>
<item name=
"android:gravity"
>center</item>
<item name=
"android:background"
>@drawable/selector</item>
</style>
</resources>
は homebtn parent=
"@style/homeiv"
を します.