加载屏幕后显示操作栏

时间:2017-11-19 11:49:45

标签: java android

我制作了一个加载屏幕/启动画面并取消了styles.xml中的操作栏(使用NoActionBar)。但是我想在加载屏幕完成后让Action Bar回来。我尝试了一种方法,但在我应用此方法之后,应用程序在我为启动画面设置的活动时间后停止。所以知道我想知道我能做些什么才能发挥作用。

This is my code for the splash screen:
package com.example.jan.jhmtest;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;

public class StartSreeen extends AppCompatActivity {

private TextView tv;
private ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start_sreeen);

        tv = (TextView) findViewById(R.id.textView2);
        iv = (ImageView) findViewById(R.id.imageView5);

        Animation myanmin = AnimationUtils.loadAnimation(this, R.anim.mytransition);

        tv.startAnimation(myanmin);
        iv.startAnimation(myanmin);

        final Intent i = new Intent(this, MainActivity.class);

        Thread timer = new Thread(){
            public void run(){
                try {
                    sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                finally {
                    startActivity(i);
                    finish();
                }
            }
        };
        timer.start();
    }
}

这是主要活动的代码

package com.example.jan.jhmtest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        toolbar =(Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle(getResources().getString(R.string.app_name));
    }
}

1 个答案:

答案 0 :(得分:1)

您的应用未渲染工具栏的原因是您没有将工具栏设置为操作栏。听起来令人困惑,但请耐心等待,并遵循这些步骤。

您设置

  

parent =“@ style / Theme.AppCompat.Light.NoActionBar”作为全局应用设置的父主题,这就是你的启动没有操作栏的原因。这就是你想要的

现在,对于屏幕的其余部分,您需要工具栏作为操作栏,所以我们假设您在此布局中添加工具栏

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:background="@color/material_animations_primary"
    android:elevation="5dp">

现在你的代码我可以看到了像这样正确初始化工具栏

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

但您错误的做法是不将此工具栏设置为支持操作栏 N.B ToolBar是支持库的一部分,它是替换Actionbar以​​使actionBar向后兼容

<强> FIX

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

这会将您的工具栏渲染为操作栏 有关详细信息,请参阅此博客文章 - &gt; Using the App Toolbar