2016-11-23 4 views
0

こんにちは、私はAndroidの新機能です。Androidは固定の位置に浮動アクションメニューを作成します

私は以下のコードセット:私はリストビューをスクロールすると上部のツールバーを非表示にする

listView.setNestedScrollingEnabled(true); 

を。ただし、フローティングアクションメニューを含む、すべての子ビューが移動されます。

フローティングアクションメニューをアイドル状態にし、その位置に固定し、NestedScrollingEnabled動作の影響を受けないようにします。どうやらそれは親ビューに影響します。

enter image description here

これまでの任意のソリューション?ありがとうございました。

私のXMLは大体この(ちょうどそれが長すぎるため、XMLコードからabitは異なっている添付画像を無視しますが、一般的な考え方がある)のようになります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:fab="http://schemas.android.com/apk/res-auto" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/fragment_price_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#e3e3e3"> 

    <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="match_parent" 
      android:layout_below="@+id/buttons_selection_container"> 

      <FrameLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

       <ProgressBar 
       android:id="@+id/progressBar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginBottom="15dp" 
       android:indeterminateTint="@color/colorProgressBarPrimary" 
       android:indeterminateTintMode="src_atop"/> 

       <TextView 
       android:id="@+id/textView_no_data" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="No Price Data" 
       android:layout_gravity="center_horizontal|center_vertical" 
       android:textStyle="bold" 
       android:textSize="18dp" 
       android:visibility="gone"/> 

       <ListView 
       android:id="@+id/listView_prices" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:nestedScrollingEnabled="true"> 
       </ListView> 
      </FrameLayout> 
    </android.support.v4.widget.SwipeRefreshLayout> 

    <com.getbase.floatingactionbutton.FloatingActionsMenu 
     android:id="@+id/price_fragment_float_Menu_button" 
     android:layout_width="322dp" 
     android:layout_height="376dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginBottom="46dp" 
     android:layout_marginRight="10dp" 
     fab:fab_addButtonColorNormal="@color/color_float_blue_dark" 
     fab:fab_addButtonColorPressed="@color/colorAccent" 
     fab:fab_addButtonPlusIconColor="@color/white"> 

     <com.getbase.floatingactionbutton.FloatingActionButton 
      android:id="@+id/button_switch_price" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      fab:fab_colorNormal="@color/color_float_blue_lite" 
      fab:fab_colorPressed="@color/colorAccent" 
      fab:fab_icon="@drawable/button_different_currencies" 
      fab:fab_size="mini" 
      fab:fab_title="Switch Price"/> 
    </com.getbase.floatingactionbutton.FloatingActionsMenu> 
</RelativeLayout> 
+0

別のビューでフローティングボタンを作成し、レイアウトを含める – Vadivel

+0

カスタムの代わりに[Google FABボタン](https://guides.codepath.com/android/floating-action-buttons)を使用します。 –

答えて

0

あなたが非表示にすることができますリストビューが

public class ScrollingFABBehavior extends FloatingActionButton.Behavior { 


private static final String TAG = "ScrollingFABBehavior"; 

public ScrollingFABBehavior(Context context, AttributeSet attrs) { 
    super(); 
    // Log.e(TAG, "ScrollAwareFABBehavior"); 
} 


public boolean onStartNestedScroll(CoordinatorLayout parent, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) { 

    return true; 
} 

@Override 
public boolean layoutDependsOn(CoordinatorLayout parent, FloatingActionButton child, View dependency) { 
    if (dependency instanceof RecyclerView) 
     return true; 

    return false; 
} 

@Override 
public void onNestedScroll(CoordinatorLayout coordinatorLayout, 
          FloatingActionButton child, View target, int dxConsumed, 
          int dyConsumed, int dxUnconsumed, int dyUnconsumed) { 
    // TODO Auto-generated method stub 
    super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, 
      dxUnconsumed, dyUnconsumed); 
    //Log.e(TAG, "onNestedScroll called"); 
    if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) { 
    // Log.e(TAG, "child.hide()"); 
     child.hide(); 
    } else if (dyConsumed < 0 && child.getVisibility() != View.VISIBLE) { 
     // Log.e(TAG, "child.show()"); 
     child.show(); 
    } 
}} 

レイアウトXML atrributeカスタムレイアウト動作を使用してスクロールさFABボタン

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/imageViewYes" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end|right" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@drawable/ic_yes" 
    app:backgroundTint="@color/white" 
    android:scaleType="center" 
    app:elevation="6dp" 
    app:fabSize="normal" 
    app:layout_behavior="com.your.package.ScrollingFABBehavior" /> 
+0

いいえ。私は常に浮動ボタンを見てほしい。リストビューが結果の最後の行に到達すると、アルファは0.4fにしかフェードしません。私の解決策はこれまでのところない。スクロール動作に依存して、上下に置いてください。フローティングボタンをリストビューレイアウト内に配置しようとします。 – felixwcf

関連する問題