Android - Fragment 碎片
Fragment需要嵌套在Activity中使用,也可以嵌套在另个Fragment中
第一步 | 设计主界面,留出用到碎片的部分 |
---|---|
第二步 | 设计碎片布局,编写Java代码继承Fragment,重写onCreateView |
第三步 | 编写点击事件,呈现相应的碎片 |
主布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearlayout1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="消息"
android:textSize="20sp"
android:background="@android:color/transparent"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="联系人"
android:textSize="20sp"
android:background="@android:color/transparent"/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="空间"
android:textSize="20sp"
android:background="@android:color/transparent"/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="我"
android:textSize="20sp"
android:background="@android:color/transparent"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
碎片布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="消息 碎片"
android:textSize="50dp"
android:gravity="center"/>
</LinearLayout>
编写碎片Java代码
public class fragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment,container,false);
return v;
}
}
主代码
public class MainActivity extends AppCompatActivity {
Button button1;
LinearLayout linearLayout1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = findViewById(R.id.button1);
linearLayout1 = findViewById(R.id.linearlayout1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getSupportFragmentManager().beginTransaction().replace(R.id.linearlayout1,new fragment()).commit();
}
});
}
}
运行后为空,点击消息显示
`