简体   繁体   English

如何在折叠工具栏布局下添加视图?

[英]How to add views under collapsing toolbar layout?

I want to add collapsing toolbar in my app. 我想在我的应用中添加折叠工具栏。 I want to add a graph layout also image view and text views inside the collapsing toolbar layout. 我想在折叠工具栏布局中添加图形布局,图像视图和文本视图。 Like this image. 喜欢这张图片。 在此输入图像描述

This graph is in collapsing toolbar layout. 此图表处于折叠工具栏布局中。 When we do scroll up graph goes up and remains as a toolbar. 当我们向上滚动时,图形会上升并保持为工具栏。

Now I am trying to add views under collapsing toolbar layout. 现在我正在尝试在折叠工具栏布局下添加视图。 But I am not able to move them and align them. 但是我无法移动它们并使它们对齐。 How to do? 怎么做?

Layout: 布局:

<android.support.design.widget.CoordinatorLayout 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:id="@+id/parentPanel"
xmlns:fab="http://schemas.android.com/apk/res-auto">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:id="@+id/appbar">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_reorder_black_48dp"
            android:id="@+id/navigationMenu" />

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

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



        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_check_box_white_24dp"/>



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


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

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffe5e5e5"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:id="@+id/scrollView">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingTop="10dp">

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

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


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



    </LinearLayout>


</android.support.v4.widget.NestedScrollView>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    app:layout_anchor="@id/appbar"
    app:layout_anchorGravity="bottom|right|end"
    style="@style/FabStyle"/>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_anchor = "@id/parentPanel"
    app:layout_anchorGravity  = "bottom|right|end"
    android:padding="20dp"
    android:weightSum="1">

    <com.github.clans.fab.FloatingActionMenu
        android:id="@+id/menu1"
        android:layout_width="match_parent"
        android:layout_height="219dp"
        android:paddingRight="10dp"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        fab:menu_labels_ellipsize="end"
        fab:menu_labels_singleLine="true"
        fab:menu_backgroundColor="#ccffffff"
        fab:menu_fab_label="Menu label"
        android:layout_gravity="bottom">

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_add_white_24dp"
            fab:fab_size="mini"
            fab:fab_label="addList" />

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_list_white_24dp"
            fab:fab_size="mini"
            fab:fab_label="list1" />

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_list_white_24dp"
            fab:fab_size="mini"
            fab:fab_label="list2" />

        <com.github.clans.fab.FloatingActionButton
            android:id="@+id/fab4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_list_white_24dp"
            fab:fab_size="mini"
            fab:fab_label="list3" />

    </com.github.clans.fab.FloatingActionMenu>
</LinearLayout>

Activity: 活动:

public class MainActivity extends AppCompatActivity { 公共类MainActivity扩展AppCompatActivity {

private CollapsingToolbarLayout collapsingToolbarLayout = null;

private FloatingActionButton fab1;
private FloatingActionButton fab2;
private FloatingActionButton fab3;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    final FloatingActionMenu menu1 = (FloatingActionMenu) findViewById(R.id.menu1);
    collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
    collapsingToolbarLayout.setTitle("List Title");

    ImageView navigationMenu = (ImageView)findViewById(R.id.navigationMenu);

    fab1 = (FloatingActionButton) findViewById(R.id.fab1);
    fab2 = (FloatingActionButton) findViewById(R.id.fab2);
    fab3 = (FloatingActionButton) findViewById(R.id.fab3);

    fab1.setOnClickListener(clickListener);
    fab2.setOnClickListener(clickListener);
    fab3.setOnClickListener(clickListener);


    navigationMenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            startActivity(new Intent(MainActivity.this,NavigationMenuActivity.class));
            overridePendingTransition(R.anim.left, R.anim.enter);

        }
    });

    menu1.setOnMenuButtonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (menu1.isOpened()) {
                Toast.makeText(MainActivity.this, menu1.getMenuButtonLabelText(), Toast.LENGTH_SHORT).show();
            }

            menu1.toggle(true);
        }
    });
    menu1.setClosedOnTouchOutside(true);


    dynamicToolbarColor();

    toolbarTextAppernce();
}


private void dynamicToolbarColor() {

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.b);
    Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
        @Override
        public void onGenerated(Palette palette) {
            collapsingToolbarLayout.setContentScrimColor(palette.getMutedColor(getResources().getColor(R.color.colorPrimary)));
            collapsingToolbarLayout.setStatusBarScrimColor(palette.getMutedColor(getResources().getColor(R.color.colorPrimaryDark)));
        }
    });
}


private void toolbarTextAppernce() {
    collapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.collapsedappbar);
    collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.expandedappbar);
}


private View.OnClickListener clickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String text = "";

        switch (v.getId()) {
            case R.id.fab1:
                text = fab1.getLabelText();
                break;
            case R.id.fab2:
                text = fab2.getLabelText();
                fab2.setVisibility(View.GONE);
                break;
            case R.id.fab3:
                text = fab3.getLabelText();
                fab2.setVisibility(View.VISIBLE);
                break;

        }
    }
    };
}

Now I have a single image view inside collapsing toolbar layout and that I can't move or align. 现在我在折叠工具栏布局中有一个图像视图,我无法移动或对齐。 How to align view and add views under collapsing toolbar? 如何在折叠工具栏下对齐视图和添加视图?

Thank you.. 谢谢..

CollapsingToolbarLayout is a subclass of FrameLayout . CollapsingToolbarLayoutFrameLayout的子类。

For maximum flexibility, put all your widgets inside a LinearLayout or RelativeLayout and make it the only child of the CollapsingToolbarLayout . 为了获得最大的灵活性,请将所有小部件放在LinearLayoutRelativeLayout并使其成为CollapsingToolbarLayout的唯一子级。 Also for best results with vertical sizing, set the height to a specific dimension. 同样为了获得垂直尺寸的最佳效果,请将高度设置为特定尺寸。

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/graph_toolbar_height"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_collapseMode="parallax">

            <!-- graph UI here -->

        </RelativeLayout>

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

Create a layout inside collapsingtoolbarlayout and add your views in there. 在collapsingtoolbarlayout中创建布局并在其中添加您的视图。

<android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="@color/colorPrimary"
            app:expandedTitleGravity="bottom|center_horizontal"
            app:expandedTitleMarginBottom="64dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="230dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/ic_about"
                    app:layout_collapseMode="parallax" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="48dp"
                    android:background="@color/colorAccent"
                    android:text="@string/about_title"
                    android:textSize="@dimen/text_size_large" />
            </LinearLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?actionBarSize"
                android:layout_marginTop="@dimen/status_bar_height"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM