ActivityGroup的用法就是用来盛放多个Activity的容器,用来切换子A!
定义ActivityGroup的时候会使用Layout_Weight=1来使得子A充满剩余空间
比如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/back">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#60686868"
android:paddingTop="3dp"
android:paddingLeft="15dp"
android:paddingBottom="2dp"
android:paddingRight="7dp"
>
<Button
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/drawale_btn_write"
/>
<TextView
android:id="@+id/tv_viewInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
android:textColor="@color/clr_white"
android:text="viewinfo"
android:layout_centerHorizontal="true"
/>
<Button
android:id="@+id/btn_refresh"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/refresh"
>
</Button>
<ProgressBar
android:id="@+id/pro_refresh"
android:layout_width="40dp"
android:layout_height="40dp"
android:visibility="gone"
android:layout_alignParentRight="true"
style="?android:attr/progressBarStyleSmall"
/>
</RelativeLayout>
<LinearLayout
android:id="@+id/containerBody"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#60686868"
android:layout_gravity="bottom"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/view_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/index"
android:paddingRight="9dp"
android:paddingLeft="9dp"
/>
<ImageView
android:id="@+id/view_cmt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cmt"
android:paddingRight="9dp"
android:paddingLeft="9dp"
/>
<ImageView
android:id="@+id/view_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/info"
android:paddingRight="9dp"
android:paddingLeft="9dp"
/>
<ImageView
android:id="@+id/view_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/search"
android:paddingRight="9dp"
android:paddingLeft="9dp"
/>
<ImageView
android:id="@+id/view_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/setting"
android:paddingRight="9dp"
android:paddingLeft="9dp"
/>
</LinearLayout>
</LinearLayout>
下面的ImageView来切换子A。
通过父A的中间的View来盛放,但是中间这个View的高度不是xml定义的高度与宽度,是自适应的。
他的布局文件时这样的
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00000000"
>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="2dp">
<RelativeLayout
android:id="@+id/btn_user_info_img"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/info_item_back"
android:clickable="true"
>
<ImageView
android:id="@+id/img_head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img_man"
/>
<TextView
android:layout_toRightOf="@id/img_head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/info_setImg"
android:layout_marginLeft="8dp"
android:textSize="15dp"
android:paddingTop="20dp"
/>
</RelativeLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_user_info_name"
android:background="@drawable/info_item_back"
android:layout_alignLeft="@id/btn_user_info_img"
android:clickable="true"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/info_name"
android:layout_marginLeft="8dp"
android:textSize="15dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="fangwuze"
android:layout_marginLeft="18dp"
android:textSize="10dp"
/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_user_info_sex"
android:background="@drawable/info_item_back"
android:clickable="true"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/info_sex"
android:layout_marginLeft="8dp"
android:textSize="15dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="man"
android:layout_marginLeft="18dp"
android:textSize="10dp"
/>
</LinearLayout>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_user_info_mood"
android:background="@drawable/info_item_back"
android:clickable="true"
>
<TextView
android:id="@+id/btn_user_info_mood"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/info_mood"
android:layout_marginLeft="8dp"
android:textSize="15dp"
/>
<TextView
android:layout_below="@id/btn_user_info_mood"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="nishibushiwo"
android:layout_marginLeft="18dp"
android:textSize="10dp"
/>
</RelativeLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_user_info_name"
android:background="@drawable/info_item_back"
android:layout_alignLeft="@id/btn_user_info_img"
android:clickable="true"
android:gravity="center_horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/info_password"
android:layout_marginLeft="8dp"
android:textSize="15dp"
/>
</LinearLayout>
</LinearLayout>
</ScrollView>
所以在给中间的View 添加子A的时候,需要额外的给它设置参数,以上的问题就得到解决。
activity_container.removeAllViews();
View childView = getLocalActivityManager().
startActivity(CampusConstants.ID_ACTIVITY[id], new Intent(MainActivityGroup.this,activity).
addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)).getDecorView();
childView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
activity_container.addView(childView);