activitygroup内子activity无法填满页面的解决办法

2013/06/07 00:00
阅读数 192

转自:http://blog.csdn.net/okgogogo1/article/details/7451938
这个问题纠结了整整一天,刚开始满以为没有什么问题,自己完全能搞定的,最后试过各种方法还是无效,无奈求助百度,总算让我找到了,转自csdn博客,可去原地址查看,这里自己也做个备份

ActivityGroup的用法就是用来盛放多个Activity的容器,用来切换子Activity!

定义ActivityGroup的时候会使用Layout_Weight=1来使得子A充满剩余空间
比如:
[html]   view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3.  <LinearLayout  
  4.   xmlns:android="http://schemas.android.com/apk/res/android"  
  5.   android:orientation="vertical"  
  6.   android:layout_width="fill_parent"  
  7.   android:layout_height="fill_parent"  
  8.   android:background="@drawable/back">  
  9.     <RelativeLayout   
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="wrap_content"  
  12.         android:background="#60686868"  
  13.         android:paddingTop="3dp"  
  14.         android:paddingLeft="15dp"  
  15.         android:paddingBottom="2dp"  
  16.         android:paddingRight="7dp"  
  17.     >  
  18.     <Button   
  19.         android:id="@+id/btn_back"  
  20.         android:layout_width="wrap_content"  
  21.         android:layout_height="wrap_content"  
  22.         android:background="@drawable/drawale_btn_write"  
  23.         />  
  24.     <TextView  
  25.         android:id="@+id/tv_viewInfo"  
  26.         android:layout_width="wrap_content"  
  27.         android:layout_height="wrap_content"  
  28.         android:textSize="28dp"  
  29.         android:textColor="@color/clr_white"  
  30.         android:text="viewinfo"  
  31.         android:layout_centerHorizontal="true"  
  32.     />  
  33.     <Button  
  34.         android:id="@+id/btn_refresh"  
  35.         android:layout_alignParentRight="true"  
  36.         android:layout_width="wrap_content"  
  37.         android:layout_height="wrap_content"  
  38.         android:background="@drawable/refresh"  
  39.         >  
  40.      
  41.         </Button>  
  42.     <ProgressBar  
  43.         android:id="@+id/pro_refresh"  
  44.         android:layout_width="40dp"  
  45.         android:layout_height="40dp"  
  46.         android:visibility="gone"  
  47.         android:layout_alignParentRight="true"  
  48.         style="?android:attr/progressBarStyleSmall"  
  49.     />  
  50.     </RelativeLayout>  
  51.      <LinearLayout   
  52.         android:id="@+id/containerBody"  
  53.         android:layout_width="fill_parent"  
  54.         android:layout_height="fill_parent"  
  55.         android:layout_weight="1"  
  56.         >  
  57.        
  58.      </LinearLayout>  
  59.          
  60.     <LinearLayout  
  61.         android:layout_width="fill_parent"  
  62.         android:layout_height="wrap_content"  
  63.         android:background="#60686868"  
  64.         android:layout_gravity="bottom"  
  65.         android:orientation="horizontal"  
  66.      
  67.     >  
  68.     <ImageView   
  69.         android:id="@+id/view_msg"  
  70.         android:layout_width="wrap_content"  
  71.         android:layout_height="wrap_content"  
  72.         android:src="@drawable/index"  
  73.         android:paddingRight="9dp"  
  74.         android:paddingLeft="9dp"  
  75.         />  
  76.           
  77.     <ImageView   
  78.         android:id="@+id/view_cmt"  
  79.         android:layout_width="wrap_content"  
  80.         android:layout_height="wrap_content"  
  81.         android:src="@drawable/cmt"  
  82.         android:paddingRight="9dp"  
  83.         android:paddingLeft="9dp"  
  84.         />  
  85.           
  86.     <ImageView   
  87.         android:id="@+id/view_info"  
  88.         android:layout_width="wrap_content"  
  89.         android:layout_height="wrap_content"  
  90.         android:src="@drawable/info"  
  91.         android:paddingRight="9dp"  
  92.         android:paddingLeft="9dp"  
  93.         />  
  94.           
  95.     <ImageView   
  96.         android:id="@+id/view_search"  
  97.         android:layout_width="wrap_content"  
  98.         android:layout_height="wrap_content"  
  99.         android:src="@drawable/search"  
  100.         android:paddingRight="9dp"  
  101.         android:paddingLeft="9dp"  
  102.         />  
  103.           
  104.     <ImageView   
  105.         android:id="@+id/view_setting"  
  106.         android:layout_width="wrap_content"  
  107.         android:layout_height="wrap_content"  
  108.         android:src="@drawable/setting"  
  109.         android:paddingRight="9dp"  
  110.         android:paddingLeft="9dp"  
  111.         />  
  112.      
  113.     </LinearLayout>  
  114. </LinearLayout>  

下面的ImageView来切换子A。

通过父A的中间的View来盛放,但是中间这个View的高度不是xml定义的高度与宽度,是自适应的。

他的布局文件时这样的
[html]   view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <ScrollView   
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:background="#00000000"  
  7.     >  
  8. <LinearLayout  
  9.     xmlns:android="http://schemas.android.com/apk/res/android"  
  10.     android:orientation="vertical"  
  11.     android:layout_width="fill_parent"  
  12.     android:layout_height="fill_parent"  
  13.     android:paddingTop="2dp">  
  14.     <RelativeLayout   
  15.         android:id="@+id/btn_user_info_img"  
  16.         android:layout_width="fill_parent"  
  17.         android:layout_height="wrap_content"  
  18.         android:layout_gravity="center_vertical"  
  19.         android:background="@drawable/info_item_back"  
  20.         android:clickable="true"  
  21.         >  
  22.         <ImageView  
  23.             android:id="@+id/img_head"    
  24.             android:layout_width="wrap_content"  
  25.             android:layout_height="wrap_content"  
  26.             android:src="@drawable/img_man"  
  27.         />  
  28.         <TextView  
  29.                 android:layout_toRightOf="@id/img_head"  
  30.                 android:layout_width="wrap_content"  
  31.                 android:layout_height="wrap_content"  
  32.                 android:text="@string/info_setImg"  
  33.                 android:layout_marginLeft="8dp"  
  34.                 android:textSize="15dp"  
  35.                 android:paddingTop="20dp"  
  36.             />  
  37.         </RelativeLayout>  
  38.     <LinearLayout   
  39.         android:orientation="horizontal"  
  40.         android:layout_width="fill_parent"  
  41.         android:layout_height="wrap_content"  
  42.         android:id="@+id/btn_user_info_name"  
  43.         android:background="@drawable/info_item_back"  
  44.         android:layout_alignLeft="@id/btn_user_info_img"  
  45.         android:clickable="true"  
  46.         >  
  47.         <TextView  
  48.                 android:layout_width="wrap_content"  
  49.                 android:layout_height="wrap_content"  
  50.                 android:text="@string/info_name"  
  51.                 android:layout_marginLeft="8dp"  
  52.                 android:textSize="15dp"  
  53.             />  
  54.         <TextView  
  55.                 android:layout_width="wrap_content"  
  56.                 android:layout_height="wrap_content"  
  57.                 android:text="fangwuze"  
  58.                 android:layout_marginLeft="18dp"  
  59.                 android:textSize="10dp"  
  60.             />  
  61.         </LinearLayout>  
  62.     <LinearLayout   
  63.         android:orientation="horizontal"  
  64.         android:layout_width="fill_parent"  
  65.         android:layout_height="wrap_content"  
  66.         android:id="@+id/btn_user_info_sex"  
  67.         android:background="@drawable/info_item_back"  
  68.         android:clickable="true"  
  69.         >  
  70.         <TextView  
  71.                 android:layout_width="wrap_content"  
  72.                 android:layout_height="wrap_content"  
  73.                 android:text="@string/info_sex"  
  74.                 android:layout_marginLeft="8dp"  
  75.                 android:textSize="15dp"  
  76.             />  
  77.         <TextView  
  78.                 android:layout_width="wrap_content"  
  79.                 android:layout_height="wrap_content"  
  80.                 android:text="man"  
  81.                 android:layout_marginLeft="18dp"  
  82.                 android:textSize="10dp"  
  83.             />  
  84.         </LinearLayout>  
  85.       <RelativeLayout   
  86.         android:orientation="horizontal"  
  87.         android:layout_width="fill_parent"  
  88.         android:layout_height="wrap_content"  
  89.         android:id="@+id/btn_user_info_mood"  
  90.         android:background="@drawable/info_item_back"  
  91.         android:clickable="true"  
  92.         >  
  93.         <TextView  
  94.                 android:id="@+id/btn_user_info_mood"  
  95.                 android:layout_width="wrap_content"  
  96.                 android:layout_height="wrap_content"  
  97.                 android:text="@string/info_mood"  
  98.                 android:layout_marginLeft="8dp"  
  99.                 android:textSize="15dp"  
  100.             />  
  101.         <TextView  
  102.                 android:layout_below="@id/btn_user_info_mood"  
  103.                 android:layout_width="wrap_content"  
  104.                 android:layout_height="wrap_content"  
  105.                 android:text="nishibushiwo"  
  106.                 android:layout_marginLeft="18dp"  
  107.                 android:textSize="10dp"  
  108.             />  
  109.         </RelativeLayout>  
  110.         <LinearLayout   
  111.         android:orientation="horizontal"  
  112.         android:layout_width="fill_parent"  
  113.         android:layout_height="wrap_content"  
  114.         android:id="@+id/btn_user_info_name"  
  115.         android:background="@drawable/info_item_back"  
  116.         android:layout_alignLeft="@id/btn_user_info_img"  
  117.         android:clickable="true"  
  118.         android:gravity="center_horizontal"  
  119.         >  
  120.         <TextView  
  121.                 android:layout_width="wrap_content"  
  122.                 android:layout_height="wrap_content"  
  123.                 android:text="@string/info_password"  
  124.                 android:layout_marginLeft="8dp"  
  125.                 android:textSize="15dp"  
  126.             />  
  127.         </LinearLayout>  
  128. </LinearLayout>  
  129. </ScrollView>  

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

所以在给中间的View 添加子A的时候,需要额外的给它设置参数,以上的问题就得到解决。

[java]   view plain copy
  1. activity_container.removeAllViews();  
  2.         View childView = getLocalActivityManager().  
  3.         startActivity(CampusConstants.ID_ACTIVITY[id], new Intent(MainActivityGroup.this,activity).  
  4.                 addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)).getDecorView();  
  5.         childView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
  6.         activity_container.addView(childView);  


 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部