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

时间:2016-12-10 06:44:09

标签: android

在我的应用程序中,我在启动画面后的工具栏上有后退按钮。(即)在主页上。我自己的主页工具栏上不需要任何图标或标题。

如何隐藏主屏幕上的按钮?

如果我通过

禁用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);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

可能的原因:

1)你没有支持动作栏。

2)你可能会使用样式隐藏supportActionBar。

3)您正在以编程方式将其隐藏在您的活动中。

溶液:

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

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar); 

答案 1 :(得分:0)

我找到了问题的答案。

  • 片段:

对于没有后退箭头的标题

((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>

在工具栏中使用主题

 <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"/>