如何删除状态栏和主屏幕之间的分隔线/阴影?

tha*_*h84 4 java android themes background statusbar

在我的应用程序中,我想保留状态栏,但使其背景与主屏幕相同.

所以我创建了一个自定义主题来设置应用背景:

<resources>
  <style name="Theme.Shelves" parent="android:Theme">
    <item name="android:windowBackground">@drawable/background_shelf</item>
    <item name="android:windowNoTitle">true</item>
  </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后把它放在清单中:

 <application android:icon="@drawable/icon" 
              android:theme="@style/Theme.Shelves"
              android:label="@string/app_name">

    <activity android:name=".HelloWorld"
              android:label="@string/app_name">
Run Code Online (Sandbox Code Playgroud)

得到这个:

屏幕截图2

除了状态栏和主屏幕之间的分隔线外,一切都还可以.我认为这是因为文本视图填充,所以我将其设置为零但没有任何改变.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    TextView tv = new TextView(this);
    tv.setText("Hello World");
    setContentView(tv);
    tv.setPadding(0,0,0,0);
}
Run Code Online (Sandbox Code Playgroud)

如果您对此有任何疑问,请告诉我.谢谢.

C0d*_*ack 9

根据您的屏幕截图判断,"分隔符"实际上是状态栏阴影.我要从记忆中去,但我认为你可以用以下方法禁用它:

<item name="android:windowContentOverlay">@null</item>
Run Code Online (Sandbox Code Playgroud)

抱歉,如果属性名称略有错误,正如我所说,从内存开始,但我认为这是正确的.