app:layout_behaviorをプログラムで設定する

AndroidP

プログラムで追加したいrecyclerviewを備えたコーディネーターレイアウトがあります。プログラムで追加される理由は、コーディネーターレイアウトを膨らませるさまざまなフラグメントが、さまざまなタイプのリサイクラービューを使用する可能性があるためです。

通常、recyclerviewの場合、この動作を設定するために、xmlに追加します。

app:layout_behavior="@string/appbar_scrolling_view_behavior"

それはうまくいきます。ただし、プログラムでrecyclerviewsを作成し、それらをフレームレイアウトに追加するときに、この動作を追加する方法については完全に途方に暮れています。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:id="@+id/coordLayout"
    android:layout_height="match_parent" android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout android:id="@+id/app_bar"
        android:fitsSystemWindows="true" android:layout_height="@dimen/app_bar_height"
        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">

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

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

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

    </android.support.design.widget.AppBarLayout>
    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </FrameLayout>

</android.support.design.widget.CoordinatorLayout>
Bartek Lipinski

BehaviorのパラメータですCoordinatorLayout.LayoutParamsCoordinatorLayout.LayoutParamswithsetBehaviorメソッドのインスタンスで動作を設定できます

インスタンスを作成する必要がBehaviorあるのと同じことを表す適切なオブジェクトを取得するに@string/appbar_scrolling_view_behaviorAppBarLayout.ScrollingViewBehavior


編集1:

例はありませんが、書くことはできます。すでに接続されているView(例yourViewがあると仮定しますCoordinatorLayout(したがって、すでに接続されていますLayoutParams)。

CoordinatorLayout.LayoutParams params = 
                            (CoordinatorLayout.LayoutParams) yourView.getLayoutParams();
params.setBehavior(new AppBarLayout.ScrollingViewBehavior());
yourView.requestLayout();

あなたはそれを少し微調整する必要があるかもしれません(私はそれをテストしていませんが、それはうまくいくはずです)。


編集2:

誰もが例を完全に理解しているわけではないように見えるので、ほんの小さな免責事項です。

yourView上記の例で述べたのそれ自体ではありませんCoordinatorLayoutyourViewあるCoordinatorLayout'sView

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

フラグメントタグに `app:layout_behavior`を設定できません

分類Dev

プログラムでlayout_gravityを設定する方法は?

分類Dev

プログラムでlayout_weightを設定する方法は?

分類Dev

プログラムでツールバーのapp:layout_scrollFlagsを設定する方法

分類Dev

「app:layout_behavior」はどこに設定する必要がありますか?

分類Dev

「app:layout_behavior」はどこに設定する必要がありますか?

分類Dev

「app:layout_behavior」はどこに設定する必要がありますか?

分類Dev

プログラムでツールバーlayout_collapseModeを設定する

分類Dev

テキストビューでlayout_toEndOfとlayout_toRightOfをプログラムで設定する方法

分類Dev

プログラムでActionBarにapp:contentInsetStartWithNavigationを設定します

分類Dev

UIImageViewがプログラムで画像を設定するバグ

分類Dev

プログラムでロケールを設定する

分類Dev

FrameLayoutの子にlayout_gravityをプログラムで設定しますか?

分類Dev

FrameLayoutの子にlayout_gravityをプログラムで設定しますか?

分類Dev

FlexboxLayoutの属性layout_wrapbeforeをプログラムで設定します

分類Dev

Android-LinearLayoutのLayout_Gravityをプログラムで設定

分類Dev

4.0.2でプログラムで値を設定する方法

分類Dev

UIScrollViewでStickyHeaderをプログラムで設定する方法

分類Dev

PercentRelativeLayout、プログラムで高さを設定する方法

分類Dev

プログラムでビューの重力を設定する

分類Dev

JavaプログラムでSubjectAltNameを設定する方法

分類Dev

プログラムで<mat-select>の値を設定する

分類Dev

SpringFramework:プログラムでBean名を設定する

分類Dev

NSScrollView内にNSTextViewをプログラムで設定する

分類Dev

プログラムでLinearLayoutの重力を設定する

分類Dev

プログラムでLinearLayoutのminHeightを設定する

分類Dev

AngularJSのDivにプログラムでzIndexを設定する

分類Dev

プログラムでSwiftの初期ViewControllerを設定する

分類Dev

プログラムで引数の数を設定する

Related 関連記事

  1. 1

    フラグメントタグに `app:layout_behavior`を設定できません

  2. 2

    プログラムでlayout_gravityを設定する方法は?

  3. 3

    プログラムでlayout_weightを設定する方法は?

  4. 4

    プログラムでツールバーのapp:layout_scrollFlagsを設定する方法

  5. 5

    「app:layout_behavior」はどこに設定する必要がありますか?

  6. 6

    「app:layout_behavior」はどこに設定する必要がありますか?

  7. 7

    「app:layout_behavior」はどこに設定する必要がありますか?

  8. 8

    プログラムでツールバーlayout_collapseModeを設定する

  9. 9

    テキストビューでlayout_toEndOfとlayout_toRightOfをプログラムで設定する方法

  10. 10

    プログラムでActionBarにapp:contentInsetStartWithNavigationを設定します

  11. 11

    UIImageViewがプログラムで画像を設定するバグ

  12. 12

    プログラムでロケールを設定する

  13. 13

    FrameLayoutの子にlayout_gravityをプログラムで設定しますか?

  14. 14

    FrameLayoutの子にlayout_gravityをプログラムで設定しますか?

  15. 15

    FlexboxLayoutの属性layout_wrapbeforeをプログラムで設定します

  16. 16

    Android-LinearLayoutのLayout_Gravityをプログラムで設定

  17. 17

    4.0.2でプログラムで値を設定する方法

  18. 18

    UIScrollViewでStickyHeaderをプログラムで設定する方法

  19. 19

    PercentRelativeLayout、プログラムで高さを設定する方法

  20. 20

    プログラムでビューの重力を設定する

  21. 21

    JavaプログラムでSubjectAltNameを設定する方法

  22. 22

    プログラムで<mat-select>の値を設定する

  23. 23

    SpringFramework:プログラムでBean名を設定する

  24. 24

    NSScrollView内にNSTextViewをプログラムで設定する

  25. 25

    プログラムでLinearLayoutの重力を設定する

  26. 26

    プログラムでLinearLayoutのminHeightを設定する

  27. 27

    AngularJSのDivにプログラムでzIndexを設定する

  28. 28

    プログラムでSwiftの初期ViewControllerを設定する

  29. 29

    プログラムで引数の数を設定する

ホットタグ

アーカイブ