gpt4 book ai didi

java - Android Fragment 看起来很开销

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:25 25 4
gpt4 key购买 nike

MainActivity 有 2 个按钮,当我单击这些按钮时,我希望 2 个 fragment 出现在同一页面中。但是当我单击其“MeContact”按钮时,它会出现,但当我单击“PhoneContact”按钮时,我会覆盖另一个 fragment 。

MainActivity.java

 public class MainActivity extends AppCompatActivity {

Button itsMeContact,phoneContact;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



itsMeContact= (Button) findViewById(R.id.its_me_contact);
phoneContact= (Button) findViewById(R.id.phone_contact);

itsMeContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

FragmentManager manager = getFragmentManager();
UserFragment userFragment = new UserFragment();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.frame_layout, userFragment, "userFragment");

transaction.commit();
}
});

phoneContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
FragmentB fragmentB = new FragmentB();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.frame_layout, fragmentB, "fragg");

transaction.commit();
}
});

}

}

UserFragment.java

 public class UserFragment extends Fragment {
RecyclerView recyclerView ;
UserAdapter userAdapter ;
ArrayList<Person> arrayList ;
private LinearLayoutManager layoutManager;
Button itsMeContact,phoneContact;

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


recyclerView = view.findViewById(R.id.recycler_view);
itsMeContact= view.findViewById(R.id.its_me_contact);


layoutManager = new LinearLayoutManager(getActivity());
layoutManager.scrollToPosition(0);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
arrayList=new ArrayList<Person>();

initial();

return view;
}

private void initial() {
Factory.getInstance().user().enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
// textView.setText(response.body().get(0).name);
userAdapter= new UserAdapter(response.body(), getActivity());
recyclerView.setAdapter(userAdapter);

}

@Override
public void onFailure(Call<List<User>> call, Throwable t) {

}
});

}

}

FragmentB.java

 public class FragmentB extends Fragment {
TextView textView;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_fragment_b,container,false);
textView=view.findViewById(R.id.textView);
textView.setText("naber");

return view;
}

}

您的建议对我很重要!

非常感谢

我的应用程序: enter image description here

最佳答案

您执行的每个 Fragment 事务都使用相同的框架布局:“R.id.frame_layout”。

所以如果“看起来是头顶上的”,这是正常的。如果您希望在同一布局中显示 2 个 fragment ,则应该使用 2 个不同的框架布局。

关于java - Android Fragment 看起来很开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46749892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com