Java 第一次启动应用程序时不会显示其他布局

Java 第一次启动应用程序时不会显示其他布局,java,android,android-layout,Java,Android,Android Layout,我开始学习android,我遇到了这个问题: 第一次(仅第一次)运行应用程序时,仅显示“活动\主”。它有一个导航栏,但它是空的 我的应用程序是为有声读物设计的。它有“最后的有声读物”、“最喜爱的有声读物”、“保存的有声读物”、“所有有声读物”部分。在第一次发射时,它们都是空的 下面的代码,我已经删除了所有与布局无关的内容: public class MainActivity extends AppCompatActivity { public static SQLiteHelper sqLit

我开始学习android,我遇到了这个问题:

第一次(仅第一次)运行应用程序时,仅显示“活动\主”。它有一个导航栏,但它是空的

我的应用程序是为有声读物设计的。它有“最后的有声读物”、“最喜爱的有声读物”、“保存的有声读物”、“所有有声读物”部分。在第一次发射时,它们都是空的

下面的代码,我已经删除了所有与布局无关的内容:

public class MainActivity extends AppCompatActivity {

public static SQLiteHelper sqLiteHelper; 
private Fragment selectedFragment = new BooksLastFragment();

@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
    final int REQUEST_CODE_PERMISSION = 1;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Toolbar toolbar = findViewById(R.id.toolbar);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        assert getSupportActionBar() != null;
        getSupportActionBar().setDisplayShowTitleEnabled(false);

    }

    BottomNavigationView navigation = findViewById(R.id.navigation);  navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);               getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new BooksLastFragment()).commit();}

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = item -> {
            switch (item.getItemId()) {
                case R.id.nav_last:
                    selectedFragment = new BooksLastFragment();
                    break;
                case R.id.nav_favourites:
                    selectedFragment = new BooksFavouritesFragment();
                    break;
                case R.id.nav_all:
                    selectedFragment = new BooksAllFragment();
                    break;
                case R.id.nav_remote:
                    selectedFragment = new GenresFragment();
                    break;
                default:
                    break;
            }
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();

            return true;
        };

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.toolbar, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    DialogFragment dialogAbout;
    switch (item.getItemId()) {
        case R.id.action_about:
            dialogAbout = new AboutFragment();
            dialogAbout.show(getSupportFragmentManager(), "dialogAbout");
            break;
        default:
            break;
    }

    return super.onOptionsItemSelected(item);
}}}
图片:

首次发射-

重新装载后-


抱歉,英语不好,代码不好

试试这个,如果有帮助,请告诉我。在这段代码中,我通过检查null调用了第一个片段,当我的应用程序在onCreate方法中启动时,我想第一次加载该片段。如果你觉得这很难理解,请告诉我。快乐编码

 private Fragment fragment = null;

    @Override
    protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    if (fragment == null) {
                fragment = new BooksLastFragment();;
                loadFragment(fragment);
            }
    }

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.nav_last:
                    Fragment fragment1 =new BooksLastFragment();
                    FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction();
                    transaction1.replace(R.id.frame_container, fragment1);
                    transaction1.commit();
                    return true;
                case R.id.nav_favourites:
                    Fragment fragment2 =new BooksFavouritesFragment();
                    FragmentTransaction transaction2 = getSupportFragmentManager().beginTransaction();
                    transaction2.replace(R.id.frame_container, fragment2);
                    transaction2.commit();
                    return true;
                case R.id.nav_all:
                    //toolbar.setTitle("Favourite");
                    return true;
                case R.id.nav_remote:
                    //toolbar.setTitle("Profile");
                    return true;
            }
            return false;
        }
    };
private void loadFragment(Fragment fragment) {
        // load fragment
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.frame_container, fragment);
        //transaction.addToBackStack(null);
        transaction.commit();
    }
这是主要的活动布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        app:layout_constraintBottom_toTopOf="@id/navigation"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>


    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="?android:attr/windowBackground"
        android:foreground="?attr/selectableItemBackground"
        app:itemBackground="@color/colorWhite"
        app:itemIconTint="@drawable/bottom_navigation_color_selector"
        app:itemTextColor="@drawable/bottom_navigation_color_selector"
        app:menu="@menu/bottom_nav"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

</android.support.constraint.ConstraintLayout>


您的问题到底是什么?您已经描述了您的应用程序,但没有说明问题所在?你想在第一次展示其他东西,还是只想隐藏列表?因为你可以设置visibility=gone在你想隐藏的元素上。我想第一次显示书籍,但他不显示。我必须用id layout books替换“R.id.discover”,对吗?是的,没错,我还更改了代码w.R.t你的代码内容。让我知道这是否对你有帮助。它已停止启动。调试器写道:“未找到fragment BooksLastFragment{33a125f#0 id=0x7f08005c}的id 0x7f08005c(有声读物:id/fragment_container)的视图”,因为我们已经定义了框架布局中的每个片段,所以请使用如下“android:id=“@+id/frame_container”这样的框架布局。我还提供了主要活动的布局。仍然是相同的错误,但非常感谢您的帮助