当前位置: 代码迷 >> 综合 >> Fragment 组件使用
  详细解决方案

Fragment 组件使用

热度:83   发布时间:2023-12-13 21:20:56.0

1.静态使用

 mainActivity.xml

   <fragmentandroid:id="@+id/fragment1"android:layout_width="match_parent"android:layout_height="200dp"android:name="com.fragment.Fragment1"></fragment><fragmentandroid:id="@+id/fragment2"android:layout_width="match_parent"android:layout_height="100dp"android:name="com.fragment.Fragment2"android:layout_marginTop="25dp"android:layout_below="@+id/fragment1"></fragment>
public class Fragment1 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment01, container, false);}
}

2.动态使用

<LinearLayoutandroid:layout_width="100dp"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/man_tv"android:layout_width="match_parent"android:layout_height="50dp"android:textSize="20dp"android:gravity="center"android:text="男装"/><Buttonandroid:id="@+id/woman_tv"android:layout_width="match_parent"android:layout_height="50dp"android:textSize="20dp"android:gravity="center"android:text="女装"/>
</LinearLayout>
<FrameLayoutandroid:id="@+id/shop_content"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/back_black">
</FrameLayout>
public class Fragment1 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment01, container, false);}
}
public class Fragment2 extends Fragment {@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment02,container,false);}
}

 

public class MainActivity extends AppCompatActivity  implements View.OnClickListener{private Button manBtn;private Button woManBtn;private Fragment1 fragmentMan;private Fragment2 fragmentWoman;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bangID();}private void bangID(){manBtn = findViewById(R.id.man_tv);woManBtn = findViewById(R.id.woman_tv);manBtn.setOnClickListener(this);woManBtn.setOnClickListener(this);}@Overridepublic void onClick(View v) {FragmentManager manager = getSupportFragmentManager();  FragmentTransaction fragmentTransaction = manager.beginTransaction();  // fragment 事务switch (v.getId()){case R.id.man_tv:if (fragmentMan == null){fragmentMan = new Fragment1();}fragmentTransaction.replace(R.id.shop_content,fragmentMan);break;case R.id.woman_tv:if (fragmentWoman == null){fragmentWoman = new Fragment2();}fragmentTransaction.replace(R.id.shop_content,fragmentWoman);break;}fragmentTransaction.commit();  //必须提交,不然不会显示}
}
  相关解决方案