ActivityGroup下子Activity的布局问题

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>

明显是使用了fill_parent!为什么它无法充满屏幕?原来父控件的尺寸就不是fill_parent,是自适应的。

所以在给中间的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);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值