android - BottomSheet opens behind VideoView -


i having hard time trying figure out happening here. first venture learning material designs spun new project , haven't gotten past first fragment.

this fragment should showing video fullscreen (as if background) elements above it. when layout inflated have bottom sheet peek appear on video should when open bottom sheet seems open sheet behind video.

not sure happening, disabled videoview element , left bottomsheet , code it. works want to. when re-enable videoview sheet opens behind video.

update: have noticed once open sheet , click around videoview login or password edittext elements take focus on out work should. seems videoview has focus default.

mainactivity.java

import android.support.v7.app.appcompatactivity; import android.os.bundle; import butterknife.butterknife;  public class mainactivity extends appcompatactivity {     @override     protected void oncreate(bundle savedinstancestate)     {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          butterknife.bind(this);          getsupportfragmentmanager().begintransaction().add(r.id.container, new mainfragment()).commit();     } } 

mainfragment.java

import android.media.mediaplayer; import android.net.uri; import android.os.bundle; import android.support.annotation.nullable; import android.support.design.widget.bottomsheetbehavior; import android.support.design.widget.coordinatorlayout; import android.support.v4.app.fragment; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.linearlayout; import android.widget.textview; import android.widget.videoview;  import butterknife.bindview; import butterknife.butterknife; import butterknife.onclick;  public class mainfragment extends fragment {      @bindview(r.id.bgvideo)     videoview bgvideo;     @bindview(r.id.loginpeek)     textview loginpeek;     @bindview(r.id.loginsheet)     linearlayout loginsheet;     @bindview(r.id.llcontainer)     linearlayout llcontainer;     @bindview(r.id.clfragmentmain)     coordinatorlayout clfragmentmain;      private static final string tag = "mainfragment";      private videoview videoview = null;      @override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate)     {         log.d(tag, "oncreateview()");         view view = inflater.inflate(r.layout.fragment_main, container, false);         butterknife.bind(this, view);         return view;     }      @override     public void onviewcreated(view view, @nullable bundle savedinstancestate)     {         super.onviewcreated(view, savedinstancestate);          renderbackgroundvideo();     }      @override     public void onviewstaterestored(@nullable bundle savedinstancestate)     {         super.onviewstaterestored(savedinstancestate);     }      @onclick(r.id.loginpeek)     public void onclick(view aview)     {         log.d(tag, "onclick()");          switch (aview.getid())         {             case r.id.loginpeek:                 if(bottomsheetbehavior.from(loginsheet).getstate() != bottomsheetbehavior.state_expanded)                 {                     bottomsheetbehavior.from(loginsheet).setstate(bottomsheetbehavior.state_expanded);                     llcontainer.setvisibility(view.visible);                 }                 else                 {                     bottomsheetbehavior.from(loginsheet).setstate(bottomsheetbehavior.state_collapsed);                     llcontainer.setvisibility(view.invisible);                 }                 break;         }     }      void renderbackgroundvideo()     {         string path = "android.resource://" + getactivity().getpackagename() + "/" + r.raw.rockclimb1;         log.d(tag, "renderbackgroundvideo() " + path);          videoview = bgvideo;         videoview.setvideouri(uri.parse(path));         videoview.setonpreparedlistener(new mediaplayer.onpreparedlistener()         {             @override             public void onprepared(mediaplayer mp)             {                 mp.setvolume(0, 0);                 mp.setlooping(true); // loop video doesnt stop if user watches                  int videowidth = mp.getvideowidth();                 int videoheight = mp.getvideoheight();                 float videoproportion = (float) videowidth / (float) videoheight;                  int screenwidth = getactivity().getwindowmanager().getdefaultdisplay().getwidth();                 int screenheight = getactivity().getwindowmanager().getdefaultdisplay().getheight();                 float screenproportion = (float) screenwidth / (float) screenheight;                  android.view.viewgroup.layoutparams lp = videoview.getlayoutparams();                  /**                  * portrait: want fit video vertical                  * dont care left & right clipping                  */                 if (videoproportion > screenproportion)                 {                     lp.height = screenheight;                     lp.width = (int) ((float) screenheight * videoproportion);                 }                 /**                  * landscape: opposite of vertical methodology                  */ //                else //                { //                    lp.width = screenwidth; //                    lp.height = (int) (videoproportion / (float) screenwidth); //                }                  videoview.setlayoutparams(lp);             }         });         videoview.start();     }  } 

activity_main.xml

<android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">  <framelayout     android:id="@+id/container"     android:layout_width="match_parent"     android:layout_height="match_parent"/>  </android.support.design.widget.coordinatorlayout> 

fragment_main.xml

<android.support.design.widget.coordinatorlayout android:id="@+id/clfragmentmain" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">  <videoview     android:id="@+id/bgvideo"     android:layout_width="wrap_content"     android:layout_height="match_parent"     android:layout_gravity="center_horizontal" />  <!-- include bottom sheet --> <include layout="@layout/login_bottom_sheet" />  </android.support.design.widget.coordinatorlayout> 

login_bottom_sheet.xml

<linearlayout 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:id="@+id/loginsheet" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/coloraccent" android:orientation="vertical" android:alpha="0.8" app:behavior_hideable="false" app:behavior_peekheight="80dp" app:layout_behavior="android.support.design.widget.bottomsheetbehavior">  <textview     android:id="@+id/loginpeek"     android:layout_width="match_parent"     android:layout_height="80dp"     android:background="@color/coloraccent"     android:gravity="center"     android:text="@string/login_peek"     android:textcolor="@android:color/white" />  <linearlayout     android:id="@+id/llcontainer"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:layout_gravity="center_vertical|center_horizontal"     android:gravity="center"     android:orientation="vertical"     android:background="@color/coloraccent"     android:visibility="invisible"     tools:ignore="hardcodedtext">      <edittext         android:id="@+id/edtusername"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_marginleft="10dp"         android:layout_marginright="10dp"         android:gravity="center|left"         android:hint="@string/lbl_user_name"         android:inputtype="textemailaddress"         android:text="testing@testing.com"         android:textcolor="@color/primarytextcolor"         tools:alpha="0"/>      <edittext         android:id="@+id/edtpass"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_marginleft="10dp"         android:layout_marginright="10dp"         android:gravity="center|left"         android:hint="@string/lbl_user_password"         android:inputtype="textpassword"         android:text="testing"         android:textcolor="@color/primarytextcolor"         tools:alpha="0"/>      <button         android:id="@+id/btnlogin"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_marginbottom="10dp"         android:layout_marginleft="10dp"         android:layout_marginright="10dp"         android:layout_margintop="@dimen/spacing_standard"         android:background="@drawable/button_selector"         android:clickable="true"         android:paddingbottom="@dimen/spacing_standard"          android:paddingleft="@dimen/activity_horizontal_margin"         android:paddingright="@dimen/activity_horizontal_margin"         android:paddingtop="@dimen/spacing_standard"         android:text="@string/login"         android:textcolor="@color/primary_button_text_color"/>  </linearlayout>  </linearlayout> 


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -