Java 第一次启动应用程序时不会显示其他布局
我开始学习android,我遇到了这个问题: 第一次(仅第一次)运行应用程序时,仅显示“活动\主”。它有一个导航栏,但它是空的 我的应用程序是为有声读物设计的。它有“最后的有声读物”、“最喜爱的有声读物”、“保存的有声读物”、“所有有声读物”部分。在第一次发射时,它们都是空的 下面的代码,我已经删除了所有与布局无关的内容:Java 第一次启动应用程序时不会显示其他布局,java,android,android-layout,Java,Android,Android Layout,我开始学习android,我遇到了这个问题: 第一次(仅第一次)运行应用程序时,仅显示“活动\主”。它有一个导航栏,但它是空的 我的应用程序是为有声读物设计的。它有“最后的有声读物”、“最喜爱的有声读物”、“保存的有声读物”、“所有有声读物”部分。在第一次发射时,它们都是空的 下面的代码,我已经删除了所有与布局无关的内容: public class MainActivity extends AppCompatActivity { public static SQLiteHelper sqLit
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”这样的框架布局。我还提供了主要活动的布局。仍然是相同的错误,但非常感谢您的帮助