Удалить тень под actionbar
Я использую actionbarsherlock. Часть кода ниже отвечает за изменение фона на пользовательский.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
и он работает для actionbarsherlock (в версиях ниже honeycomb). Но в ICS у меня есть тень ниже actionbar, которую я не хочу. каков элемент стиля, чтобы он исчез?
10 ответов
каков элемент стиля, чтобы он исчез?
чтобы удалить тень, добавьте это в свою тему приложения:
<style name="MyAppTheme" parent="android:Theme.Holo.Light">
<item name="android:windowContentOverlay">@null</item>
</style>
обновление:
Как @ Quinny898 заявил, на Android 5.0 это изменилось, вы должны позвонить setElevation(0)
на панели действий. Обратите внимание, что если вы используете библиотеку поддержки, вы должны вызвать ее так:
getSupportActionBar().setElevation(0);
для Android 5.0, если вы хотите установить его прямо в стиле:
<item name="android:elevation">0dp</item>
и для поддержки совместимости библиотеки используйте:
<item name="elevation">0dp</item>
пример стиля для легкой темы AppCompat:
<style name="Theme.MyApp.ActionBar" parent="style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<!-- remove shadow below action bar -->
<!-- <item name="android:elevation">0dp</item> -->
<!-- Support library compatibility -->
<item name="elevation">0dp</item>
</style>
затем примените этот пользовательский стиль ActionBar к теме приложения:
<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
<item name="actionBarStyle">@style/Theme.MyApp.ActionBar</item>
</style>
для pre 5.0 Android добавьте это тоже в свою тему приложения:
<!-- Remove shadow below action bar Android < 5.0 -->
<item name="android:windowContentOverlay">@null</item>
на Android 5.0 это изменилось, вы должны вызвать setElevation (0) на панели действий. Обратите внимание, что если вы используете библиотеку поддержки, вы должны вызвать ее так:
getSupportActionBar().setElevation(0);
на него не влияет элемент стиля windowContentOverlay, поэтому никаких изменений стилей не требуется
Если вы работаете с ActionBarSherlock
в вашей теме добавьте это:
<style name="MyTheme" parent="Theme.Sherlock">
....
<item name="windowContentOverlay">@null</item>
<item name="android:windowContentOverlay">@null</item>
....
</style>
вы должны установить app: elevetor="0dp" в android.поддержка.дизайн.штучка.AppBarLayout, а затем он работает :D
<android.support.design.widget.AppBarLayout
app:elevation="0dp"... >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
app:popupTheme="@style/AppTheme.PopupOverlay" >
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
у меня эта же проблема, и я успешно решил эту проблему. Все, что вам нужно сделать, это просто изменить высоту на 0 значение с плавающей запятой в том действии, в котором вы хотите удалить высоту.
если вы хотите изменить его в акции под названием MyActivity.java
Так надо ActionBar
первый.
сначала импортировать ActionBar
класс
import android.support.v7.app.ActionBar;
после импорта вы должны инициализировать переменную панели действий и настроить ее до уровня 0.
private ActionBar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
.
.
toolbar=getSupportActionBar();
toolbar.setElevation(0);
.
.
}
для разработчиков Xamarin используйте : SupportActionBar.Elevation = 0;
на AppCompatActivity
или ActionBar.Elevation = 0;
для не-compat деятельности
для тех, кто работает над фрагментами, и он исчез после установки toolbar.getBackground().setAlpha(0);
или любое исчезновение, я думаю, вы должны довести свой AppBarLayout до последнего в xml, поэтому его фрагмент затем AppBarLayout затем relativelayout/constraint/linear в зависимости от того, что вы используете.