【问题标题】:Fragment fill all activity in transaction片段填充事务中的所有活动
【发布时间】:2014-04-28 14:50:19
【问题描述】:

我正在做一个需要片段事务的应用程序,我制作了它,它可以工作,但是片段不会停留在要替换的框架布局的范围内,它会填充所有活动。

相关代码: MainActivity.java

public class MainActivity extends FragmentActivity 
{
@Override
    protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

CircleFragment myFragment = new CircleFragment();                                                                                                                       
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frm_profile, myFragment).commit();
     }
 }

activity_main.xml

<FrameLayout
    android:id="@+id/frm_profile"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"                
    android:layout_alignParentTop="true"
    android:padding="5dp"
    android:background="@drawable/background_banner"      
 >     
    <RelativeLayout 
        android:id="@+id/rlt_profile"
        android:layout_width="match_parent"
        android:layout_marginTop="10dp"            
        android:layout_height="wrap_content">              
    <ImageView
        android:id="@+id/img_profile"
        android:layout_width="55dip"
        android:layout_height="55dip"
        android:contentDescription="@string/poi_poi_name"
        android:src="@drawable/logo_app_lrg" />    

    <TextView
        android:id="@+id/txt_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/img_profile"
        android:layout_toRightOf="@+id/img_profile"
        android:textColor="#040404"
        android:textSize="16sp"
        android:layout_marginLeft="10dp"
        android:text="Nombre"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/txt_status"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Status"
        android:layout_below="@+id/txt_name"
        android:layout_toRightOf="@+id/img_profile"
        android:textColor="#343434"
        android:layout_marginLeft="10dp"
        android:textSize="12sp" />    
     </RelativeLayout>     
</FrameLayout>    
 <com.google.android.gms.maps.MapView       
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/Rlt_address"                 
    android:id="@+id/map_locations" />

  <LinearLayout 
    android:id="@+id/lnr_buttons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:padding="10dp"
    android:background="@drawable/background_banner"
    android:weightSum="3"
    android:orientation="horizontal">
    <ImageButton
        android:id="@+id/btn_call"
        android:src="@android:drawable/ic_menu_call"
        android:background="#00000000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"                            
        android:layout_weight="1"/>

    <ImageButton
        android:id="@+id/btn_sms"
        android:src="@android:drawable/ic_menu_manage"
        android:background="#00000000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"                                            
        android:layout_weight="1"/> 

     <ImageButton
        android:id="@+id/btn_refresh"
        android:background="#00000000"
        android:src="@android:drawable/ic_menu_compass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"                                                    
        android:layout_weight="1"/> 
    </LinearLayout>    

android:choiceMode="singleChoice" android:divider="@android:color/transparent" 安卓:dividerHeight="0dp" android:background="#0b4d69"/>

CircleFragment.java

public class CircleFragment extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    return inflater.inflate(R.layout.list_element_circle, container,false);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) 
{

}
}

list_element_circle.xml

机器人:方向=“水平” 机器人:背景=“#0b4d69” android:paddingTop="2dp">

<View 
   android:background="#FFFFFF" 
   android:layout_height="2dp" 
   android:layout_width="fill_parent"/>    
<TextView
    android:id="@+id/list_element_circle_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"        
    android:gravity="center_vertical"
    android:padding="5dp"                                                      
    android:text="Nombre"
    android:textColor="#FFFFFF"
    android:textSize="24sp"
    android:textStyle="bold"
    android:typeface="sans" />
<TextView
    android:id="@+id/list_element_circle_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"               
    android:padding="5dp"                                                      
    android:text=""
    android:textColor="#00000000"
    android:textSize="2sp"/>        
  <HorizontalScrollView 
    android:id="@+id/scrl_members"        
    android:layout_height="match_parent"
    android:scrollbars="none"
    android:paddingTop="40dp"
    android:paddingRight="5dp"
    android:paddingLeft="5dp"
    android:paddingBottom="10dp"
    android:layout_width="wrap_content">
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_height="match_parent"
        android:layout_width="wrap_content">            
            <TextView
                android:id="@+id/list_element_circle_member1"
                android:drawableTop="@drawable/ic_action_person"
                android:drawablePadding="5dp"
                android:tag="list_element_circle_member1"
                android:textColor="#FFFFFF"
                android:layout_width="wrap_content"                 
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"                    
                android:layout_gravity="center"                 
                android:text="Miembro"
                android:textSize="18sp" />
            <TextView
                android:id="@+id/list_element_circle_member2"
                android:drawableTop="@drawable/ic_action_person"
                android:tag="list_element_circle_member2"
                android:drawablePadding="5dp"
                android:textColor="#FFFFFF"
                android:layout_width="wrap_content"                 
                android:layout_height="match_parent"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"                    
                android:layout_gravity="center"                 
                android:text="Miembro"
                android:textSize="18sp"/> 
            <TextView
                android:id="@+id/list_element_circle_member3"
                android:drawableTop="@drawable/ic_action_person"
                android:tag="list_element_circle_member3"
                android:drawablePadding="5dp"
                android:textColor="#FFFFFF"
                android:layout_width="wrap_content"                 
                android:layout_height="match_parent"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"                    
                android:layout_gravity="center"                 
                android:text="Miembro"
                android:textSize="18sp"/> 
            <TextView
                android:id="@+id/list_element_circle_member4"
                android:drawableTop="@drawable/ic_action_person"
                android:tag="list_element_circle_member4"
                android:drawablePadding="5dp"
                android:textColor="#FFFFFF"
                android:layout_width="wrap_content"                 
                android:layout_height="match_parent"                    
                android:layout_gravity="center"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:text="Miembro"
                android:textSize="18sp" /> 
            <TextView
                android:id="@+id/list_element_circle_member5"
                android:drawableTop="@drawable/ic_action_person"
                android:tag="list_element_circle_member5"
                android:drawablePadding="5dp"
                android:textColor="#FFFFFF"
                android:layout_width="wrap_content"                 
                android:layout_height="match_parent"                    
                android:layout_gravity="center" 
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"                
                android:text="Miembro"
                android:textSize="18sp" />                                 
    </LinearLayout>        
 </HorizontalScrollView>        

我应该怎么做,让它停留在 frameLayout 范围内?

【问题讨论】:

    标签: android android-fragments fragmenttransaction


    【解决方案1】:

    您的布局非常庞大。 FrameLayout 和 Fragment 按预期工作,但是由于内容太大,它占用了所有空间。

    在最外面的布局上添加一个ScrollView,如下所示,

    <ScrollView
       android:layout_width="match_parent"
       android:layout_height="match_parent" >
        <FrameLayout
           android:id="@+id/frm_profile"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"                
           android:layout_alignParentTop="true"
           android:padding="5dp"
           android:background="@drawable/background_banner">
    
         //your remaining main activity here    
    </ScrollView>
    

    您将能够滚动查看布局的其余部分。 :)

    【讨论】:

      【解决方案2】:

      我只是重新设计了应用程序,因为我尝试了大约 3 天,但似乎没有任何效果。我所做的是取出 Horizo​​ntalScrollView。保持线性布局水平,并使布局内的项目更小,使其适合。

      这绝对不是一个好的答案,也不是我一直在寻找的答案,但这就是我解决这个问题的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多