gpt4 book ai didi

java - 即使调用 setSupportActionBar 后也看不到顶部工具栏

转载 作者:行者123 更新时间:2023-12-01 16:21:00 25 4
gpt4 key购买 nike

我正在尝试在 fragment 中添加一个顶部工具栏,其中包含选项菜单。在模拟器上运行它时,工具栏不会显示。
我已调用 setSupportActionBar(toolbar),但仍不确定出了什么问题。
编辑:我已经将应用程序主题更改为 NoActionBar。

ProfileFragment.java

public class ProfileFragment extends Fragment {

private static final String TAG = "ProfileFragment";

private static final int ACTIVITY_NUM = 4;


private Toolbar toolbar;
private BottomNavigationViewEx bottomNavigationView;

private Context mContext;

//firebase
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;

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

toolbar = view.findViewById(R.id.profiletoolbar);
bottomNavigationView = view.findViewById(R.id.bottomnav);
mContext = getActivity();
Log.d(TAG, "onCreateView: started.");

setupBottomNavigationView();
setupToolBar();

return view;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}

//bottom nav setup
public void setupBottomNavigationView() {

Log.d(TAG, "setupBottomNavigationView: starting bottomnavsetup");
BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationView);
BottomNavigationViewHelper.enableBottomNav(mContext, bottomNavigationView);
Menu menu = bottomNavigationView.getMenu();
MenuItem menuItem = menu.getItem(ACTIVITY_NUM);
menuItem.setChecked(true);
}

//toolbar setup
private void setupToolBar() {
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

if (item.getItemId() == R.id.signout) {
Toast.makeText(mContext, "Sign out clicked", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onOptionsItemSelected: attempting to sign out");
mAuth.signOut();
getActivity().finish();
}
return super.onOptionsItemSelected(item);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
menuInflater.inflate(R.menu.profile_menu, menu);
super.onCreateOptionsMenu(menu, menuInflater);
}
}

snippet_top_profile_bar.xml(这是工具栏)

<merge xmlns:android="http://schemas.android.com/apk/res/android">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/white_grey_border_bottom">

<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/profiletoolbar">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="#username"
android:id="@+id/username"/>
</RelativeLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>

我有所有必要的进口。

最佳答案

此方法将在 Activity 中起作用。但是,在这里您尝试使用 Fragment 来做到这一点。 fragment 是子 Activity ,因此它们执行操作的范围有限。

可能发生的另一件事是,您应该将 Activity 主题更改为 noActionbar。通过使用此功能,默认工具栏将隐藏,您的自定义工具栏将显示。

关于java - 即使调用 setSupportActionBar 后也看不到顶部工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62279322/

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