Fragmen 主要用于平板电脑或手机横屏
一、创建项目创建一个新项目项目名为Fragment
二、创建第一个碎片布局
在layout下创建一个布局
右击 layout / New / Layout Resource File
取名为 left_frag 并使用 LinearLayout 布局
左碎片布局设置成按钮栏
三、创建一个类来控制布局
在 java / 右击 com.example.fragment / New / Java Class
类名取为 LeftFrag
LeftFrag 类中的代码如下
package com.example.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
public class LeftFrag extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.left_frag,container,false);
return view;
}
}
四、创建第一个右布局
同样的方法创建一个右布局
取名为:righr_frag1
右布局设置成显示栏
righr_frag1 中的代码为:
五、创建右碎片布局对应的类
同样的方法创建一个类
取名为:RightFrag1
RightFrag1类中的代码为:
package com.example.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
public class RightFrag1 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.right_frag1,container,false);
return view;
}
}
六、创建第二个右布局
同样的方法创建第二个右布局
取名为:
right_frag2
right_frag2 中的代码为:
七、创建第二个右布局对应的类
同样的方法
想必你已经猜到它的名称了
没错就是:RightFrag2
RightFrag2 中的代码为:
package com.example.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
public class RightFrag2 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.right_frag2,container,false);
return view;
}
}
八、修改主布局
把activity_main 中的代码改为:
九、在主活动中注册功能//左布局设置为静态 //右布局设置为动态
MainActivity 中的代码为:
package com.example.fragment;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_1 = (Button) findViewById(R.id.btn_1);
btn_1.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View view) {
replaceFragment(new RightFrag1());
}
});
Button btn_2 = (Button) findViewById(R.id.btn_2);
btn_2.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View view) {
replaceFragment(new RightFrag2());
}
});
}
private void replaceFragment(Fragment fragment) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.right_layout,fragment);
transaction.commit();
}
}
到这里你对Fragment应该有个印象了试着自己做一个新闻页面吧
谢谢阅读,你的关注是我创作的最大动力



