2016-03-13 30 views
5

私のスナックバー(デザインサポート)には何が表示されないのですか?全画面表示でスナックバーが表示されない

私はVideoView(動的に作成されたSurfaceViewを含むFrameLayout)を持っています。

レイアウトファイルには、次のとおりです。

<?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:layout_height="match_parent" 
    android:fitsSystemWindows="false" 
    android:id="@+id/coordinator" 
    android:background="@android:color/white" 
    tools:context="com.denisloh.typhoonCamera.MainActivity"> 

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

     <VideoView 
      android:id="@+id/videoView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="top|start" 
      android:background="@drawable/toolbar_gradient" 
      android:theme="@style/AppTheme.AppBarOverlay" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

      <android.support.v7.widget.ActionMenuView 
       android:id="@+id/action_bar" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" /> 

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

    </RelativeLayout> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_camera_white_24dp" /> 

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

私が作成し、このスニペットでスナックバーを表示:私はそれが示されていないスナックバーを開こうとすると

... 
mCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator); 
... 

private void showWifiSettingsSnackBar(final String message) { 
    Snackbar.make(
      mCoordinatorLayout, 
      getString(R.string.wifi_error_open_settings, message), 
      Snackbar.LENGTH_INDEFINITE) 
      .setAction(R.string.wifi_settings, new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
       } 
      }) 
      .show(); 
    Log.d(TAG, "Showing snackbar."); 
} 

。しかし、レイアウトからVideoViewを削除すると、問題なく表示されます。

私は、VideoViewがそれを隠しているか、スナップバーが範囲外に表示されていると思います。これを確認するために、VideoViewを同じサイズの基本ビューに置き換えました。しかし、そこに、私はスナックバーを見ることができます。

誰かがSnackbarsに関連してSurfaceViewsで同様の問題を抱えていましたか?

+0

を – eclipse1203

答えて

3

試して、videoView.setZOrderOnTop(偽)のごVideoViewにスナックバーを取り付けます。あなたのJavaファイルに

+2

setZOrderOnTop(真)申し訳ありませんが助けにはならなかった代わりにCoordinatorLayout –

1

ではなく、追加CoordinatorLayout

+0

のごVideoViewにそれを添付し、トリックをした、ありがとうございました。。。。。 –

0

フルスクリーンとAppCompatでWebViewを使用しているときにSnackbarが隠れているのと同様の問題があります。問題の解決策:

•スナックバーを起動します。

View rootView = super.findViewById(R.id.mainContainer); 
Snackbar snack = Snackbar.make(rootView, message, Snackbar.LENGTH_INDEFINITE); 
snack.setAction("OK", callback); 
View view = snack.getView(); 

•スナック前景を表示するために重要です。

view.requestFocusFromTouch(); 

•スナップを表示する位置を設定してください。 !(重要:ボトムそれを設定すると、オーバーレイそれを隠すだろう

FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams(); 
params.setGravity(Gravity.TOP); 
view.setLayoutParams(params); 
snack.show(); 
関連する問題