2013-07-05 46 views

回答

34

基本上可以使用RelativeLayoutLinearLayout它仍然可以工作,但你的问题的回答是FrameLayout的文档中:

FrameLayout里被设计来阻挡的区域在屏幕上显示 一个单个项目。一般来说,FrameLayout应该用于保存子视图,因为可以很难以 的方式组织子视图,这种方式可以扩展到不同的屏幕尺寸,而不需要儿童 彼此重叠。但是,您可以使用android:layout_gravity 属性将多个孩子添加到FrameLayout中,并将其在FrameLayout中的位置控制为 ,从而为每个孩子分配重力。

你可以阅读更多关于FrameLayout这里:FrameLayout/Android Developers

14

框架布局的主要目的是阻止以适应最大的子视图所需要的面积。如果将帧布局用作碎片容器,则可以确保始终具有可用空间以容纳最大碎片布局。

在某些情况下,您可能需要同时在屏幕上显示多于1个片段,在这种情况下,您应该更喜欢相对或线性布局。

1

一切都基于用户需求和定制需要。

根本没有必要使用FrameLayout。

例如在下面的代码中没有采取布局,并且片段本身只包含单个imageview。

public class MyFragment extends Fragment implements OnClickListener{ 

    String TAG="MyFragment"; 
    Context c; 
    MyFragment(Context con){ 
    c=con; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
    } 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onActivityCreated(savedInstanceState); 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 

     ImageView v=new ImageView(c); 
      //other imageview stuff 

     return v; 
    } 
    @Overrides 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Log.i(TAG, "onClcik"); 

    } 
} 
相关问题