片段不完全涵盖父活动

时间:2014-06-03 12:05:52

标签: android android-fragments

当我们点击Button片段的视图重叠Activity视图时,Button中有Activity's

点击Button后,它会转发到Fragment。问题是它与Button重叠。

MainActivity我创建了Button并在用户点击Button时设置了侦听器,它被转发到仅包含textview的片段文件。

MainActivity.java:

 public class MainActivity extends FragmentActivity {        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);     
            Button button = (Button) findViewById(R.id.button1);
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {                 
                       fragment fr = new fragment();                                                   
                      getSupportFragmentManager().beginTransaction().add(R.id.parent_frame, fr).commit();            
                }                   
           });          
         }      
}

fragment.java

 public class fragment extends Fragment {

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

    } 

fragment.xml:

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">       

        <TextView
            android:id="@+id/detailsText"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:text="Default Text ggggggg"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="30dip" />
    </RelativeLayout>

activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Press to update"
         />

    <fragment
        class="com.example.demo3.fragment"
      android:id="@+id/parent_frame"
      android:layout_alignParentTop="true"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:2)

为什么不将Activity仅用作容器,并将Fragments用于所有ui元素,包括您点击的按钮在它们之间进行更改?

像这样:Programatically switching between Fragments

答案 1 :(得分:1)

这是一种独特的想法,我很感激。如果你想这样做,只需按照以下步骤操作:

1)在你的活动主要采取framelayout,高度宽度系统适合(matchparent),id是parent_frame

2)在其中按下按钮,当你点击它时,设置按钮可见

3)然后你可以将片段添加到这个framlayout

确保您的activity_main必须包含带matchparent的framlayout