标签: android-toolbar

如何以编程方式为工具栏设置app:layout_scrollFlags

我的应用程序有一个viewpager和4个选项卡,每个选项卡都有许多片段.但我只想在2个特定选项卡中滚动recyclerview时向上/向下滚动工具栏.但我不知道如何阻止工具栏滚动其他选项卡.我试图为每个片段导入工具栏,但似乎我不能这样做.有人有想法解决这个问题吗?

android android-fragments android-toolbar android-coordinatorlayout

57
推荐指数
2
解决办法
3万
查看次数

我们应该用ToolBar替换Action Bar吗?

我一直在使用ToolBar它,因为它被添加到Support v7库中.我觉得我用得很好.但有一点我无法理解.为什么Google会创建这样的小部件?我的意思是我们可以ToolBar通过使用做任何事情ActionBar.我们为什么要使用ToolBar?有什么优势ToolBarActionBar如果有的话?是否有必要更换ActionBarToolBar

任何提示都表示赞赏.并提前感谢.

PS:我发现ToolBar是一个蜕变ViewGroup.那么,我们怎么能ToolBarLayout?有人可以发布一些代码吗?

android android-actionbar android-toolbar

56
推荐指数
7
解决办法
3万
查看次数

修复CoordinatorLayout中的底栏

我有一个CoordinatorLayout包含AppBarLayoutFrameLayout包含片段的a.

其中一个片段包含一个TabLayout顶部,一个列表槽RecyclerView和底部一个"自制"工具栏.

AppBarLayout配置了app:layout_scrollFlags="scroll|enterAlways"

我的问题是当滚动时,两个"工具栏"都隐藏了,AppBarLayout和我底部的"自制"工具栏.这是当前的行为

在此输入图像描述

我想修复底部的"自制"工具栏以保持可见但我无法实现它.

这是片段Layout的XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <android.support.design.widget.TabLayout
        android:id="@+id/toolbarfilter"
        android:layout_width="match_parent"
        android:background="@color/azul_asde"
        app:tabMode="fixed"
        app:tabMaxWidth="0dp"
        android:elevation="4dp"
        app:tabIndicatorColor="@color/verde_pastel"
        android:layout_height="wrap_content"
        />

    <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/swipeContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

    <android.support.v7.widget.RecyclerView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
    </android.support.v4.widget.SwipeRefreshLayout>

        <LinearLayout
        android:id="@+id/toolbarselection"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:background="@color/azul_asde"
        android:elevation="4dp"
        android:visibility="visible"
        >
        <ImageView
            android:id="@+id/delete"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/ic_delete_white_24dp"
            android:tint="@color/gris_desactivado" />
        <ImageView
            android:id="@+id/select"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/ic_bookmark_border_white_24dp"/>

        <ImageView
            android:id="@+id/send"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-toolbar android-coordinatorlayout

56
推荐指数
3
解决办法
2万
查看次数

android棒棒糖工具栏:如何在滚动时隐藏/显示工具栏?

我正在使用appcompat/support-v7中引入的新工具栏小部件.我想隐藏/显示工具栏,具体取决于用户是否在页面上下滚动,就像在新的Google Playstore应用程序或NewsStand应用程序中一样.工具栏小部件中是否有内置的东西,或者我应该将它与FrameLayout和ObservableScrollView结合使用?

material-design android-5.0-lollipop android-toolbar

55
推荐指数
5
解决办法
10万
查看次数

需要针对某些片段禁用针对CollapsingToolbarLayout的扩展

我有一个AppCompatActivity控制替换许多片段.这是我的布局.

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"
android:id="@+id/drawer_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true">

<include layout="@layout/activity_main_frame"/>

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:background="@color/white"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/drawer"/>

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

activity_main_frame.xml

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp">

            <ImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="256dp"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax" />

            <include layout="@layout/activity_main_items"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_collapseMode="pin"/>

            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:layout_gravity="bottom"/>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" >
    </FrameLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_anchor="@id/appbar" …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-toolbar coordinator-layout

53
推荐指数
7
解决办法
4万
查看次数

"后退按钮"使用getSupportActionbar和appcompat v7工具栏

我正在使用Appcompat V7库中的新工具栏,我正在使用导航抽屉和片段制作应用程序.

在一些片段中,我不想显示汉堡包图标而是显示箭头......我很好,我这样做:

mDrawerToggle.setDrawerIndicatorEnabled(false);

mDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

getSupportActionBar().setHomeAsUpIndicator(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我需要如何或在哪里设置主页按钮lisener或我需要听"后退"按钮?我想调用主要的反向方法并使用汉堡包图标设置导航抽屉图标.

android android-appcompat android-toolbar

50
推荐指数
4
解决办法
9万
查看次数

Toolbar.inflateMenu似乎什么都不做

我目前正忙着使用新的AppCompat库,为旧设备带来材料设计.

将工具栏设置为操作栏对我来说很好,但工具栏似乎在调用时没有做任何事情inflateMenu(int resId).从文档中,我认为这是替换getMenuInflater().inflate(int resId)来自onCreateOptionsMenu的调用.如果我做后者,菜单项正确膨胀并添加到工具栏,但inflateMenu似乎没有.

我错过了什么?

活动代码:

Toolbar toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.inflateMenu(R.menu.main); // this does nothing at all
    setSupportActionBar(toolbar);
}

// this works
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

android android-appcompat material-design android-toolbar

49
推荐指数
1
解决办法
2万
查看次数

如何使用appcompat v21在独立工具栏上启用homeAsUp或调用setDisplayHomeAsUpEnabled()

我正在尝试将我的应用程序转换为使用v21 AppCompat库,因此我开始使用工具栏而不是ActionBar.在我的所有常规活动(扩展ActionBarActivity)中,一切都很好.但在我的SettingsActivity中扩展了PreferenceActivity,因此我无法使用setSupportActionBar(actionbar)调用,我需要使用"独立"工具栏.工具栏显示,但我无法弄清楚如何将"home/up"按钮添加到工具栏.

SettingsActivity.java:

public class SettingsActivity extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
        Toolbar actionbar = (Toolbar) findViewById(R.id.actionbar);
        if (null != actionbar) {

            // In every other activity that extends ActionBarActivity I simply use:
            // setSupportActionBar(actionbar);
            // final ActionBar supportActionBar = getSupportActionBar();
            // supportActionBar.setDisplayHomeAsUpEnabled(true);

            // but in PreferenceActivity you need to add a standalone toolbar:    
            actionbar.setTitle(R.string.title_activity_settings);
            actionbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    SettingsActivity.this.finish();
                }
            });

            // Inflate a menu to be displayed in …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-actionbar-compat android-toolbar

49
推荐指数
4
解决办法
4万
查看次数

如何修复放置在工具栏顶部的Android 4.x的Spinner样式

根据Android文档,Spinner小部件支持Material Design样式.

所以我决定在我的应用程序中使用它将它放在工具栏的顶部.

布局/ activity_base.xml

<android.support.v7.widget.Toolbar
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="5dp"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
 </android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

活动主题

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/omni_primary_color</item>
    <item name="colorPrimaryDark">@color/omni_primary_color_dark</item>
    <item name="colorAccent">@color/omni_accent_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)

BaseActivity.java

public class BaseActivity extends ActionBarActivity {

    @InjectView(R.id.my_awesome_toolbar)
    Toolbar mToolbar;

    @InjectView(R.id.spinner)
    Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base);
        ButterKnife.inject(this);
        //setup toolbar
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        mToolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(mToolbar.getContext(),
                R.array.planets_array, R.layout.support_simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    }
}
Run Code Online (Sandbox Code Playgroud)

在棒棒糖旋转器和下拉列表看起来很好,虽然下拉背景颜色是黑色比菜单下拉列表是白色.我猜这app:popupTheme="@style/ThemeOverlay.AppCompat.Light"不会传播到微调器.

Android 5.0

在此输入图像描述 在此输入图像描述

现在最大的问题是Android 4.x下拉背景颜色是白色(popupTheme传播?)和微调器旁边的图标是黑色.

Android 4.4

在此输入图像描述

如何在XML中正确设置它或在代码中实现它以使其适用于Android 5和4?理想情况下,我希望在Android …

android android-layout android-spinner android-toolbar

49
推荐指数
3
解决办法
6万
查看次数

Android v7工具栏按钮对齐

android.support.v7.widget.Toolbar在我的应用程序中使用下面的代码添加,现在我想在工具栏的右端显示一个按钮,但是无法执行此操作.

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/accent_color"
    android:minHeight="?attr/actionBarSize"
    android:layout_alignParentTop="true"
    tools:context=".MyActivity"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/showevents"
        android:textSize="12sp"
        android:background="@null"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:textColor="@color/white"
        android:text="UPCOMING \nEVENTS"/>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

我也添加了以下显示,但它没有移动到右边.

android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
Run Code Online (Sandbox Code Playgroud)

附图供参考:

在此输入图像描述

android android-layout android-actionbar android-actionbar-compat android-toolbar

49
推荐指数
2
解决办法
5万
查看次数