【问题标题】:Action icon not appear in toolbar操作图标未出现在工具栏中
【发布时间】:2020-06-03 07:19:23
【问题描述】:

美好的一天

我正在开发使用导航组件的应用程序我设置了我的工具栏图标但它没有出现 所以我尝试按照这些指南herehere解决问题,但仍然没有出现
这是我的片段代码

public class myFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_community_timeline, container, false);

}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    NavController navController = Navigation.findNavController(view);
    AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build();
    Toolbar toolbar = view.findViewById(R.id.timeline_toolbar);
    NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);


}

Xml 文件

    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".User.Community.CommunityTimelineFragment">

<androidx.appcompat.widget.Toolbar
        android:id="@+id/timeline_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme"
        app:menu="@menu/user_menu"
        app:title="@string/timeline" />

</FrameLayout>

我的菜单

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/add_company"
        android:icon="@drawable/ic_company"
        android:title="@string/add_company"
        android:visible="true"
        app:showAsAction="always" />
    <item
        android:id="@+id/fiter_bodcast"
        android:icon="@drawable/ic_bodcast"
        android:title="@string/filter_setting"
        android:visible="true"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/add_question"
        android:icon="@drawable/ic_question"
        android:title="@string/add_question"
        android:visible="true"
        app:showAsAction="ifRoom" />
</menu>

请任何人知道为什么会发生此问题

【问题讨论】:

    标签: java android android-studio toolbar navigationcontroller


    【解决方案1】:

    尝试在您的onCreateView 方法中创建所有视图。

    而不是这个:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_community_timeline, container, false);
    
    }
    

    你应该这样做:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_community_timeline, container, false);
    
        NavController navController = Navigation.findNavController(view);
        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build();
        Toolbar toolbar = view.findViewById(R.id.timeline_toolbar);
        NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);
    
        return view;
    }
    

    希望对你有帮助

    【讨论】:

    • 我移至 onCreateview 但这行 NavController navController = Navigation.findNavController(view);cases 运行时错误即使我将其更改为 NavController navController = Navigation.findNavController(getActiviry(), R.id.nav_host_fragment); @garritfra
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多