appcompat-v7:自定义视图未在ActionBar中正确对齐

时间:2014-10-18 21:30:57

标签: android android-activity android-appcompat

我正在尝试使用基于Appcompat工具栏的actionBar

这是我的toolbar.xml
    

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:paddingBottom="0dp"
android:background="?attr/colorPrimaryDark">

</android.support.v7.widget.Toolbar>

我将此包含在我的activity.xml文件中。 然后在我的Activity的OnCreate方法中,我将自定义PagerStrip设置为ActionBar

    ActionBar actionBar = getSupportActionBar();
    actionBar.setCustomView(R.layout.pager_strip);
    actionBar.setDisplayShowCustomEnabled(true);
    tabs =  (PagerSlidingTabStrip) actionBar.getCustomView().findViewById(R.id.tabs_strip);
    tabs.setViewPager(mPager);

ActionBar中的PagerStrip下面有一些填充。我想删除这个填充。 这是一张显示问题的图片。 enter image description here

使用ActionBarSherlock

可以正常工作

2 个答案:

答案 0 :(得分:11)

我遇到了类似的问题:我已迁移到工具栏模式:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar">

    <my.custom.widget.class
            android:id="@+id/tab_bar"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    </my.custom.widget.class>
</android.support.v7.widget.Toolbar>

但是AppCompat在我的自定义视图周围给了我一个奇怪的填充: enter image description here

我的修复:

app:contentInsetStart="0dp"app:contentInsetEnd="0dp"添加到工具栏属性中;和android:minHeight="?attr/actionBarSize"到自定义小部件属性。

结果:
enter image description here

不确定该解决方案是否遵循材料设计指南,但希望它对某人有所帮助。

答案 1 :(得分:-3)

在某些情况下,工具栏是Actionbar的小部件替换。 如果您想使用工具栏,那么您可以尝试:

Toolbar=(Toolbar)findViewbyId(R.id.toolbar);
setSupportActionbar(toolbar);

我在DrawerLayout中使用了工具栏。我的导航抽屉总是可以顶部工具栏。

P / S:在ActionBarActivity中使用工具栏