Фрагмент заполняет всю активность в транзакции

Я делаю приложение, которому нужна транзакция фрагмента, я сделал это, и оно работает, но фрагмент не остается в границах заменяющего фреймаLayout, он заполняет всю активность.

Соответствующий код: 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" android: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

Android: ориентация = "горизонтальный" Android: фон = "# 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>        

What should I do, to make it stays in the frameLayout bounds?

MainActivity


person Alejandro Cumpa    schedule 28.04.2014    source источник


Ответы (2)


Ваш макет очень большой. 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>

и вы сможете прокрутить, чтобы увидеть остальную часть макета. :)

person Atul O Holic    schedule 28.04.2014

Я просто переделываю приложение, потому что пытался около 3 дней, и ничего не работает. Что я делаю, так это удаляю HorizontalScrollView. Держите linearlayout горизонтальным и делайте элементы внутри макета меньше, чтобы они помещались.

Это определенно не очень хороший ответ, ни тот, который я искал, но именно так я решил эту проблему.

person Alejandro Cumpa    schedule 29.04.2014