質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

1回答

1946閲覧

AndroidのSupport design libraryについて

Zousan

総合スコア29

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2015/08/17 00:57

編集2015/08/17 14:08

Android support design libraryを使って下記のレイアウトを作成しました。しかし、Snackbarを表示させたときにFloationActionButtonが上にスライドしてくれません。どこを直せばスライドするようになるかアドバイスをください。よろしくおねがいします。

参考URL

レイアウト

xml

1<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:id="@+id/root_view" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 xmlns:app="http://schemas.android.com/apk/res-auto"> 7 8 <android.support.design.widget.AppBarLayout 9 android:layout_width="match_parent" 10 android:layout_height="200dp" 11 android:fitsSystemWindows="true"> 12 13 <android.support.design.widget.CollapsingToolbarLayout 14 android:id="@+id/collapsing_toolbar" 15 android:layout_width="match_parent" 16 android:layout_height="match_parent" 17 app:contentScrim="@color/primary_color" 18 app:layout_scrollFlags="scroll|exitUntilCollapsed"> 19 <TextView 20 android:id="@+id/ex_text" 21 android:layout_width="match_parent" 22 android:layout_height="match_parent" 23 app:layout_collapseMode="parallax" 24 android:background="@color/accent_color" 25 android:text="@string/kawiais_ex_text" 26 android:textSize="16sp" 27 android:gravity="center" 28 android:paddingLeft="24dp" 29 android:paddingRight="24dp" 30 android:textColor="@android:color/white"/> 31 <android.support.v7.widget.Toolbar 32 android:id="@+id/toolbar" 33 android:layout_width="match_parent" 34 android:layout_height="?attr/actionBarSize" 35 app:theme="@style/ThemeOverlay.AppCompat.ActionBar" 36 app:layout_scrollFlags="scroll|enterAlways" 37 app:title="@string/title_kaiwai_list" 38 app:layout_collapseMode="pin"/> 39 </android.support.design.widget.CollapsingToolbarLayout> 40 </android.support.design.widget.AppBarLayout> 41 42 <android.support.v7.widget.RecyclerView 43 android:id="@+id/recycler" 44 android:layout_width="match_parent" 45 android:layout_height="wrap_content" 46 app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 47 48 49 50 <android.support.design.widget.FloatingActionButton 51 android:id="@+id/fab" 52 android:layout_width="wrap_content" 53 android:layout_height="wrap_content" 54 android:layout_gravity="bottom|end" 55 android:layout_margin="16dp" 56 android:src="@drawable/ic_add_white" 57 app:fabSize="normal" 58 app:borderWidth="0dp" 59 app:backgroundTint="@color/fab_color" /> 60 61 <com.rey.material.widget.ProgressView 62 android:id="@+id/progress" 63 android:layout_width="@dimen/progress_size" 64 android:layout_height="@dimen/progress_size" 65 app:pv_progressMode="indeterminate" 66 app:pv_progressStyle="@style/progress_style" 67 app:pv_autostart="true" 68 app:pv_circular="true" 69 android:layout_gravity="center"/> 70 71</android.support.design.widget.CoordinatorLayout>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

android.support.design.widget.FloatingActionButton android:id="@+id/fabの
android:layout_gravityが"bottom|end"になっているからです。
この指定で親であるandroid.support.design.widget.CoordinatorLayoutの
一番下であることを指示しています。

一番手っ取り早いのはSnacbarを出したときにFloatingActionButtonの
下側マージンをその分増やすことです。

レイアウトの基本的な考え方は以下のサイトを参考にしてください。
http://kenkenppa.seesaa.net/article/256638800.html

投稿2015/08/17 13:11

tenroku

総合スコア105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zousan

2015/08/17 14:04

回答ありがとうございます。 確かにそうすれば実現できると考えられますが、それではCoordinatorLayoutを使う意味がないのではないですか。 質問の趣旨としましては、下記サイトのようにFloationActionButtonとCoordinatorLayoutを使えば質問内容のようなことを実現できるはずであるにもかかわらず、私の作成したLayoutではそれができないのでその原因についてアドバイスいただきたく考えております。 https://lab.getbase.com/introduction-to-coordinator-layout-on-android/
tenroku

2015/08/17 14:41

機械翻訳ですがそのサイトでもビューの大きさを返しているようですが?¨ その処理が抜けているだけではないのでしょうか ビューが動作する方法を学びます すなわち、このフレームワークの本当の力です、あなたはそのビューの独自の行動を行うために、ビューのクラスへのアクセス権を持っている必要はありません。また、任意のビューのデフォルトの動作を変更することができます。 まず、行動クラスを拡張する必要があります: パブリッククラスFloatingActionButtonBehaviorがCoordinatorLayout.Behaviorを拡張<FloatingActionButton> XMLからそのクラスインフレータブルを作るために、我々は、コンテキストおよび属性セットのパラメータでコンストラクタを追加する必要があります。 公共FloatingActionButtonBehavior(コンテキストコンテキスト、属性セットのATTRS){} 次のステップは、メソッドのオーバーライドすることであるlayoutDependsOnを() 、我々は変更を聴きたい場合はtrueを返します。我々のケースでは、スナックバーが変更をオブジェクトのみをリッスンします。 @Override パブリック ブール layoutDependsOn (CoordinatorLayout親、FloatingActionButton子、ビューの依存関係) { 返す依存性をのinstanceof SnackbarLayout。 } それでは、実際の動作の実装に行ってみましょう。方法onDependentViewChangedは CoordinatorLayout内の各時間依存ビューの変更と呼ばれます。この方法では、現在のスナックバーのビューステートを読み込むことができます。私たちは、スナックバーが現れたときにFABを移動します。これを行うために、我々は、スナックバービューの高さにFABビューのYを変換する必要があります。スナックバーのアニメーションは、スナックバーの高さに設定Yの翻訳を開始し、我々はその翻訳Y値からスナックバーの高さを減算する必要が正しい翻訳に値を取得します。オブジェクトが画面上の位置を変更したときの資料によると、私たちはtrueを返す必要があります。 @Override パブリック ブール onDependentViewChanged (CoordinatorLayout親、FloatingActionButton子、ビューの依存関係) { フロート translationY = Math.min(0、dependency.getTranslationY() - dependency.getHeight()); child.setTranslationY(translationY)。 返す 真 ; }
Zousan

2015/08/25 01:11

返信が遅れてしまい申し訳ありません。 それは、サードパーティーのライブラリを使用するばあいですね。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問