Android中状态栏的高度是多少?总是一样的吗?
根据我的测量结果,它似乎是25dp,但我不确定它是否在所有平台上具有相同的高度.
(我想知道这是为了正确实现从没有状态栏的活动到执行状态栏的活动的淡入淡出过渡)
我想让我的活动全屏显示状态栏,就像这张图片一样:
我在manifest内部activity标记中使用了此代码:
'android:theme="@style/Theme.AppCompat.Light.NoActionBar"'
Run Code Online (Sandbox Code Playgroud)
但我的观点并不是从状态栏开始的,它看起来像这样:
我怎样才能让自己activity看起来像第一个?
android android-theme android-activity android-fullscreen android-statusbar
我有一个活动DrawerLayout.我们的客户要求我们根据从中选择的项目动态更改操作栏颜色和此活动的相应状态栏颜色DrawerLayout.这很容易做到.但是,我的问题是,当我动态更改状态栏颜色时,我无法保持状态栏透明.当我打开抽屉时,彩色状态栏覆盖了这样的顶部DrawerLayout:
但是,我希望我DrawerLayout看起来像这样:
我可以使用以下行:
<item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)
但是,我的问题不在于我无法设置状态栏的透明度.我的问题是动态更改状态栏和操作栏颜色不起作用windowTranslucentStatus.colorPrimaryDark即使我打电话,我的状态栏颜色仍然是(上图中状态栏上可见的芥末黄色)getWindow().setStatusBarColor().
现在,我跟着这个教程和这个和这个在许多其他计算器的问题,但未能解决该问题.所有这些文章都说,ActionBar一旦我设置为windowTranslucentStatus,将移动到状态栏下方的顶部(以便状态栏与操作栏重叠)true.之后,我应该能够在操作栏中添加一些填充,只需更改操作栏颜色也会导致颜色相同的深色状态栏,因为状态栏实际上是半透明的并且与我的操作栏重叠.但是,出于某种原因,在我的情况下不会发生这种情况.操作栏保持它是我是否设置fitsSystemWindows到true或false或完全删除该属性.操作栏始终位于状态栏下方,当然,如果我设置透明度,则状态栏始终为黄色.
我还尝试以编程方式更改状态栏颜色时设置alpha.这确实使状态栏有点透明,但它看起来很奇怪,因为它不再是黑暗.删除CoordinatorLayout也没有帮助.我花了几个小时试图解决这个问题,现在非常沮丧.任何帮助是极大的赞赏.
我的activity_main:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true">
<include layout="@layout/nav_header_main" />
<android.support.v7.widget.RecyclerView
android:id="@+id/nav_menu_recyclerview"
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) xml android drawerlayout android-statusbar android-coordinatorlayout
我试图使我的工具栏和状态栏透明,如图像下方.
但我会这样
任何人都可以帮助我如何使这透明.
我尝试了下面的所有链接,但没有用
这是我的代码
MainActivity.java:-
package aleph.transparent;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.util.TypedValue;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(toolbar);
toolbar.getBackground().setAlpha(0);
//getSupportActionBar().setDisplayShowTitleEnabled(false);
// Check if the version of Android …Run Code Online (Sandbox Code Playgroud) 在下面的图片中,我试图将 ImageView 置于 StatusBar 下。但它没有发生。
我继续使用Android 透明状态栏和操作栏(this question)并尝试实现相同但不起作用。
活动的xml布局是
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:id="@+id/category_layout_top"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:fitsSystemWindows="true"
android:layout_width="390dp"
android:layout_height="390dp"
android:id="@+id/category_Image_View"/>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/def_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="#00FFFFFF"
android:layout_alignParentTop="true" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/category_linearlayout">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="true"
android:id="@+id/category_textView"
/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
我也在onCreate()方法中尝试了以下代码
setStatusBarTranslucent(true);
protected void setStatusBarTranslucent(boolean makeTranslucent) {
if (makeTranslucent) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
} …Run Code Online (Sandbox Code Playgroud) 有谁知道如何使状态栏看起来像谷歌地图?
我设法使用android:fitsSystemWindows="true"和获得抽屉布局的透明状态
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
layout - > activity_main.xml
<android.support.v4.widget.DrawerLayout
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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">...
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_main_header" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
values-v21 - > styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
谢谢.