Androidの実戦経験のIncudeメモ
私達はプロジェクトをする時よく同じレイアウトの設計を使います.全部一つのxmlファイルに書いたら、コードが冗長に見えます.死に行くような感じがします.可読性も悪いです.
同じレイアウトのコードを単独で取り出して一つのxmlファイルに入れることができます.
読者はコードの全体レイアウトについて深く理解しています.
1 includeタグはlayout属性だけが必要です.2.includeタグがID属性を指定したら、あなたのlayoutもIDを定義したら、あなたのlayoutのIDが上書きされます.
3 includeタグの中にあるすべてのandroid:layout*.すべて有効です
でも前提はlayout_を書かなければなりません.widthとlayout_ヘイトの二つの属性は無効です.
一例を見てください
main.xml
1
2
3
4
5
6
7
8
9
10
11
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"fill_parent"
android:layout_height=
"fill_parent"
android:orientation=
"vertical"
>
<include
android:id=
"@+id/include"
layout=
"@layout/other"
/>
</LinearLayout>
includeが引用するそのxml:other.xml
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"fill_parent"
android:layout_height=
"fill_parent"
android:orientation=
"vertical"
>
<ImageView
android:layout_width=
"fill_parent"
android:layout_height=
"wrap_content"
android:src=
"@drawable/free_bg_small_3"
/>
</LinearLayout>
Include Activity.java1
2
3
4
5
6
7
8
9
10
11
12
13
package
xiaosi.include;
import
android.app.Activity;
import
android.os.Bundle;
public
class
IncludeActivity
extends
Activity {
/** Called when the activity is first created. */
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}