在android中,如何在启动屏幕后隐藏主屏幕上的后退按钮?

在android中,如何在启动屏幕后隐藏主屏幕上的后退按钮?,android,Android,在我的应用程序中,我在启动屏幕后的工具栏上有默认的后退按钮(即主页上)。我不需要任何图标或标题在我的主页工具栏单独 如何隐藏主屏幕上的按钮 如果我通过禁用MainActivity上的后退按钮 getSupportActionBar().setDisplayHomeAsUpEnabled(false); 它显示NullPointerException public class MainActivity extends AppCompatActivity { @Override p

在我的应用程序中,我在启动屏幕后的工具栏上有默认的后退按钮(即主页上)。我不需要任何图标或标题在我的主页工具栏单独

如何隐藏主屏幕上的按钮

如果我通过禁用MainActivity上的后退按钮

getSupportActionBar().setDisplayHomeAsUpEnabled(false);
它显示NullPointerException

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);
        HomeFragment homeFragment = new HomeFragment();
        showFragment(homeFragment, Constants.HOME_FRAGMENT, false);
    }
    @Override
    public void onBackPressed() {
        if (getFragmentManager().getBackStackEntryCount() == 0) {
            showAlertDialog(Constants.EXIT_APP, Constants.APP_NAME);
        } else {
            getFragmentManager().popBackStackImmediate();
        }
    }
    public void showFragment(Fragment fragment, String back_stack_name, boolean isAddToBackStack) {
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.add(R.id.container, fragment);
        if (isAddToBackStack) {
            transaction.addToBackStack(back_stack_name);
        }
        transaction.commit();
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int vid = item.getItemId();
        switch (vid) {
            case android.R.id.home:
                this.onBackPressed();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}
可能的原因:

1) 您没有支持操作栏

2) 您可能需要使用样式隐藏supportActionBar

3) 您正在通过编程将其隐藏在活动中

解决方案:

如果您在activty中使用工具栏,请尝试在onCreate()方法中使用以下代码:


我找到了我问题的答案

  • 碎片:
不带反箭头的标题

((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(title);
对于带有后箭头的标题

((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(title);

  • 在活动中:
不带反箭头的标题

((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(title);
对于带有后箭头的标题

((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayShowCustomEnabled(false);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setTitle(title);
getSupportActionBar().setDisplayShowCustomEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(title);

对于彩色后退按钮,请在样式中修改

<style name="ToolbarColoredBackArrow" parent="AppTheme">
    <item name="android:textColorSecondary">#ffffff</item>  <!-- white arrow -->
</style>

#ffffff
在工具栏中使用主题

 <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:theme="@style/ToolbarColoredBackArrow"
            app:popupTheme="@style/AppTheme.PopupOverlay"/>


这意味着getSupportActionBar()方法返回fall.S。那么,我现在应该怎么做才能使用actionbaractivity、activity或appcompactactivity将主页中的默认图标隐藏起来呢?我正在使用appcompactactivity。您可以在问题中发布异常日志吗。