pedrovgs / draggablepanel Goto Github PK
View Code? Open in Web Editor NEWAndroid library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.
License: Apache License 2.0
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.
License: Apache License 2.0
Hi Pedrovgs,Fiddl3,
I am using mediaplayer in the top fragment and when i try to seek(drag the thumb of Seekbar), The Top fragment moves downward(fluctuates). What could be done to stabilize the TopView untill significant dragging is done ?
It will be very useful if the DraggableView could start closed or minimised, so if, for example, I click a list item, the DraggableView can be maximised to show the related content; or if I rotate the device when the DraggableView is minimised, it can be recreated in the minimised state.
hi, how can i draggable view en-ability false lansdscape mode .
Hi , i am using this lib and i have created a demo myself and when i run this demo i got the following errors in the library
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo/com.example.demo.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class com.github.pedrovgs.DraggablePanel
[10:21:35 AM] Manpreet Singh: 10-14 10:11:26.213: D/dalvikvm(8932): Late-enabling CheckJNI
10-14 10:11:26.373: D/AndroidRuntime(8932): Shutting down VM
10-14 10:11:26.373: W/dalvikvm(8932): threadid=1: thread exiting with uncaught exception (group=0x4192dba8)
10-14 10:11:26.433: E/AndroidRuntime(8932): FATAL EXCEPTION: main
10-14 10:11:26.433: E/AndroidRuntime(8932): Process: com.example.demo, PID: 8932
10-14 10:11:26.433: E/AndroidRuntime(8932): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo/com.example.demo.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class com.github.pedrovgs.DraggablePanel
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.os.Handler.dispatchMessage(Handler.java:102)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.os.Looper.loop(Looper.java:136)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.main(ActivityThread.java:5001)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.reflect.Method.invokeNative(Native Method)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.reflect.Method.invoke(Method.java:515)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
10-14 10:11:26.433: E/AndroidRuntime(8932): at dalvik.system.NativeStart.main(Native Method)
10-14 10:11:26.433: E/AndroidRuntime(8932): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.github.pedrovgs.DraggablePanel
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.Activity.setContentView(Activity.java:1929)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.example.demo.MainActivity.onCreate(MainActivity.java:33)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.Activity.performCreate(Activity.java:5231)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
10-14 10:11:26.433: E/AndroidRuntime(8932): ... 11 more
10-14 10:11:26.433: E/AndroidRuntime(8932): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.github.pedrovgs.DraggablePanel" on path: DexPathList[[zip file "/data/app/com.example.demo-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.demo-2, /vendor/lib, /system/lib]]
10-14 10:11:26.433: E/AndroidRuntime(8932): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.createView(LayoutInflater.java:559)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
10-14 10:11:26.433: E/AndroidRuntime(8932): ... 21 more
Hi i am sending you the screen shot of problem i am facing . When i click the listview which is behind youtube fragment, the youtube player maximizes(which is ok) but as you can see below UI portion of listview is visible . That means fragment set at bottom(which is imageview in my case by using setbottomfragment() method ) is not setting properly.
Error on class DraggableView.java, cause IllegalArgumentException.
Line 309: viewDragHelper.processTouchEvent(ev);
Device: XT1032
Hi Pedrovgs,
I am using DraggablePanel for a Video Application and it got stuck sometimes from transitioning maximise and minimise states.
Please let me know if i could modify any logic to fix this.
Thanks !!
I implemented draggable pannel library in my project .
My work flow is same as your demo , the only diffrence is behind youtube fragment i am displaying a list(in your demo you displayed imageview).
When i drag the vedio down following methods are not getting called as i checked by logs. Vedio is dragging down well.
Methods are :
draggablePanel.setDraggableListener(new DraggableListener() {
s
@OverRide
public void onMaximized() {
playVideo();
System.out.println(" onMaximized");
}
@Override
public void onMinimized() {
System.out.println(" onMinimized");
//Empty
}
@Override
public void onClosedToLeft() {
pauseVideo();
System.out.println(" onClosedToLeft");
}
@Override
public void onClosedToRight() {
pauseVideo();
System.out.println(" onClosedToRight");
}
});
Also when i click the list behind(when vedio is dragged down) , list click listener is not working and instead vedio is maximised again.
Please help me sort this issue
can you create eclipse project ? i have much error with this maven project. please.
sorry, i speak E not well. Thanks
how to solve that, i'm using android studio
This one is easy:
Go to https://github.com/pedrovgs/DraggablePanel/branches and delete the Stale branches
Also: Since you now have a master
and develop
branch, you should set the default branch to develop
in the project settings. Otherwise pull requests will target master
by default.
Hello, I am sending you the code i used to set my Ui in case of draggable pannel. It is very nice library and i am stuck on just one part. Screenshot i have given in previous issue i posted. My list is getting visible from bottom, seems like fragment below youtube fragment is not behaving properly and this happens only when i click on list after minimizing youtube player(on dragging it down) . It maximizes well and even video plays good but it is destroying my UI at bottom(screen shot will give u clear view) . I am sending you my code as well
//On oncreate
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.vediofile);
flag = 0;
lv = (ListView) findViewById(R.id.iv_thumbnail);
draggablePanel = (DraggablePanel) findViewById(R.id.draggable_panel);
// ButterKnife.inject(this);
moviePosterFragment = new MoviePosterFragment();
initializeYoutubeFragment();
hookDraggablePanelListeners();
initializeDraggablePanel();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// On click listener of list i am playing a new vedio
VIDEO_KEY = LoaderTask.vedio.get(position);
draggablePanel.maximize();
youtubePlayer.loadVideo(VIDEO_KEY);
}
});
This is how i initialize draggable pannel
private void initializeDraggablePanel() {
// Here i am loading my list first and creating adapter
FrameLayout footerLayout = (FrameLayout) getLayoutInflater().inflate(
R.layout.footer, null);
System.out.println("6666");
ProgressBar footer = (ProgressBar) footerLayout
.findViewById(R.id.progressbar);
lv.addFooterView(footerLayout);
// --page size = 10--
ProdAdapter ad = new ProdAdapter(getApplicationContext(), 15, footer,
"M", "car");
lv.setAdapter(ad);
check = true;
LoaderTask t = new LoaderTask(0, 15, getApplicationContext(), ad, "M",
"car", check);
t.execute();
// Here code is same as your demo project for putting top and bottom fragments
draggablePanel.setFragmentManager(getSupportFragmentManager());
draggablePanel.setTopFragment(youtubeFragment);
moviePosterFragment = new MoviePosterFragment();
// moviePosterFragment.setPoster(VIDEO_POSTER_THUMBNAIL);
moviePosterFragment.setPosterTitle(VIDEO_POSTER_TITLE);
draggablePanel.setBottomFragment(moviePosterFragment);
draggablePanel.initializeView();
}
//code of fragment i am setting at this method setbottomfragment
public class MoviePosterFragment extends Fragment {
ImageView thumbnailImageView;
private String videoPosterThumbnail;
private String posterTitle;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.poster, container, false);
thumbnailImageView = (ImageView) view.findViewById(R.id.iv_thumbnail2);
// ButterKnife.inject(this, view);
try { Picasso.with(getActivity()).load(
"http://4.bp.blogspot.com/-BT6IshdVsoA/UjfnTo_TkBI/AAAAAAAAMWk/JvDCYCoFRlQ/s1600/xmenDOFP.wobbly.1.jpg"
).placeholder(R.drawable.spiderman_placeholder).into(thumbnailImageView);
} catch (Exception e) { // TODO Auto-generated catch block
e.printStackTrace(); }
return view;
}
Now i am sending you xml i am using
<!-- Movie Thumbnail -->
<ListView
android:id="@+id/iv_thumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- DraggablePanehhl -->
<com.github.pedrovgs.DraggablePanel
android:id="@+id/draggable_panel"
android:layout_width="match_parent"
android:layout_height="match_parent"
draggable_panel:enable_horizontal_alpha_effect="false"
draggable_panel:top_fragment_height="@dimen/top_fragment_height"
draggable_panel:top_fragment_margin_bottom="@dimen/top_fragment_margin"
draggable_panel:top_fragment_margin_right="@dimen/top_fragment_margin"
draggable_panel:x_scale_factor="@dimen/x_scale_factor"
draggable_panel:y_scale_factor="@dimen/y_scale_factor" />
android:background="#000000"
/>
this is my dimen.xml in values folder
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="top_fragment_height">200dip</dimen>
10dip
2
2
I tried to give you my code in brief please help me . Its been 4 days i am stuck on this
I am uploading vedio as well for you . have a look please
http://videobam.com/IUjYH
Hi,
When the Draggable panel is in minimize mode, single click does not maximizes it. A little Drag is required to maximize it.
How can i enable/fix this.?
Can be a great ideia to organize the new features...
i have problen when minimize video height not resize (width work fine), see my video: https://www.youtube.com/watch?v=-7igAAaaWdk
This view doesn't animate when the user click (or say to maximize) on the first time.
Hi Pedro,
I've found a problem, my layout has a line between views, look this:
I don't know what can be. Do you have?
Code:
mDraggablePanel.setFragmentManager(getSupportFragmentManager());
mDraggablePanel.setTopFragment(mVideoFragment);
mDraggablePanel.setBottomFragment(mDetailsFragment);
TypedValue typedValue = new TypedValue();
getResources().getValue(R.dimen.x_scale_factor, typedValue, true);
float xScaleFactor = typedValue.getFloat();
typedValue = new TypedValue();
getResources().getValue(R.dimen.y_scale_factor, typedValue, true);
float yScaleFactor = typedValue.getFloat();
//Get parent width and set the height with scale 16/9
mVideoHeight = (9*(new ViewUtil(this).getScreenWidth()))/16;
if(mVideoHeight <= 0) {
mVideoHeight = getResources().getDimensionPixelSize(R.dimen.top_fragment_height);
}
mDraggablePanel.setXScaleFactor(xScaleFactor);
mDraggablePanel.setYScaleFactor(yScaleFactor);
mDraggablePanel.setTopViewHeight(Math.abs(mVideoHeight));
mDraggablePanel.setTopFragmentMarginRight(getResources().getDimensionPixelSize(R.dimen.top_fragment_margin));
mDraggablePanel.setTopFragmentMarginBottom(getResources().getDimensionPixelSize(R.dimen.top_fragment_margin));
mDraggablePanel.initializeView();
mDraggablePanel.setDraggableListener(onDraggablePanelListener);
mDraggablePanel.setVisibility(View.GONE);
mDraggablePanel.minimize();
mVideoFragment.draggablePanelSlideListener(mDraggablePanel);
hey, i have an issui when scroll my listview , please view video: https://www.youtube.com/watch?v=-jRcmcvzjac (android 2.3)
it work fine on android 4.3, 4.4 (i think work on android above 4.0 too)
please help me, thank you
It seems that if you use a VideoVideo as your DragView, that the video will not resize to fit the dragview during (or after the gesture).
This results in the video in the VideoView being cropped.
See video of demo app: https://dl.dropboxusercontent.com/u/419977/draggablepanel_videoview_crop.mp4
I just see it's still use the Sherlock ActionBar in the library, it would not be interesting to implement on the sample Toolbar to keep up with new updates? as Sherlock went into space and the Compat is being depreciated?
Hi, when i drag view in left or right in minimized form then vedio is not behaving or moving properly.
I tried to do some changes in viewcallback class but not working my way.
It is not going smooth for me i.e on dragging right the view is going completely left.
I checked your app on play store, there it is working fine but when i run your sample app i am facing these issues.
Moreover when view is dragged to minimized state then it got some margins in left and right in every vedio.
Please help me resolve this issue.
Thanks
Hi pedrovgs/Fiddl,
I am facing Arrayindex out of bound on frquently seeking the seekbar of Player.
Tested on Device Nexus 5 and Samsung S4
Android version: kitkat
Here are the Logs:
12-10 19:45:01.340: E/AndroidRuntime(1411): java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.support.v4.widget.ViewDragHelper.shouldInterceptTouchEvent(ViewDragHelper.java:1011)
12-10 19:45:01.340: E/AndroidRuntime(1411): at com.github.pedrovgs.DraggableView.onInterceptTouchEvent(DraggableView.java:290)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1859)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
12-10 19:45:01.340: E/AndroidRuntime(1411): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
12-10 19:45:01.340: E/AndroidRuntime(1411): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
12-10 19:45:01.340: E/AndroidRuntime(1411): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.View.dispatchPointerEvent(View.java:7886)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3947)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5532)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5512)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5483)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5612)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5585)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5631)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.Choreographer.doFrame(Choreographer.java:542)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.os.Handler.handleCallback(Handler.java:733)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.os.Handler.dispatchMessage(Handler.java:95)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.os.Looper.loop(Looper.java:136)
12-10 19:45:01.340: E/AndroidRuntime(1411): at android.app.ActivityThread.main(ActivityThread.java:5001)
12-10 19:45:01.340: E/AndroidRuntime(1411): at java.lang.reflect.Method.invokeNative(Native Method)
12-10 19:45:01.340: E/AndroidRuntime(1411): at java.lang.reflect.Method.invoke(Method.java:515)
12-10 19:45:01.340: E/AndroidRuntime(1411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
12-10 19:45:01.340: E/AndroidRuntime(1411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
12-10 19:45:01.340: E/AndroidRuntime(1411): at dalvik.system.NativeStart.main(Native Me
Please let me know how can i fix this.
Thanks !
Can you remove the NineOlds dependency? You can use ViewCompat instead.
I imported your sample app and done minor changes. In framelayout i took first element as Listview(as i need to show working same as youtube app). When we minimize the vedio and i select any other element from listview then draggable pannel UI is getting distorted.
I changed activity_youtube_sample.xml as following
<!-- Movie Thumbnail -->
<ListView
android:id="@+id/ivx_thumbnail"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<!-- DraggablePanel -->
<com.github.pedrovgs.DraggablePanel
android:id="@+id/draggable_panel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
draggable_panel:x_scale_factor="@dimen/x_scale_factor"
draggable_panel:y_scale_factor="@dimen/y_scale_factor"
draggable_panel:top_fragment_height="@dimen/top_fragment_height"
draggable_panel:top_fragment_margin_right="@dimen/top_fragment_margin"
draggable_panel:top_fragment_margin_bottom="@dimen/top_fragment_margin"
draggable_panel:enable_horizontal_alpha_effect="false"/>
Implement a listener to move the DraggablePanel to left when the user scroll/open the nav drawer.
Guys, as I see, your project doesn't provide methods to retain fragments on rotation, for instance.
Using draggable panel as a part of activity layout, one should always call draggablePanel.initializeView()
in onCreate()
method, because it actually calls the method to inflate the draggableView
layout. However, you need to set up top/bottom fragments before. But there is no way to get my previously created fragments back by their tags.
Plz, tell me, if there is no workaround in your lib and fix is needed. I suppose the corresponding tags and the API method to get them should be added.
08-05 12:16:24.701: E/AndroidRuntime(19177): FATAL EXCEPTION: main
08-05 12:16:24.701: E/AndroidRuntime(19177): java.lang.RuntimeException: Unable to create application com.github.pedrovgs.sample.DraggablePanelApplication: java.lang.IllegalStateException: Module adapter for class com.github.pedrovgs.sample.di.MainModule could not be loaded. Please ensure that code generation was run for this module.
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4593)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.app.ActivityThread.access$1400(ActivityThread.java:157)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.os.Looper.loop(Looper.java:176)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.app.ActivityThread.main(ActivityThread.java:5317)
08-05 12:16:24.701: E/AndroidRuntime(19177): at java.lang.reflect.Method.invokeNative(Native Method)
08-05 12:16:24.701: E/AndroidRuntime(19177): at java.lang.reflect.Method.invoke(Method.java:511)
08-05 12:16:24.701: E/AndroidRuntime(19177): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
08-05 12:16:24.701: E/AndroidRuntime(19177): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dalvik.system.NativeStart.main(Native Method)
08-05 12:16:24.701: E/AndroidRuntime(19177): Caused by: java.lang.IllegalStateException: Module adapter for class com.github.pedrovgs.sample.di.MainModule could not be loaded. Please ensure that code generation was run for this module.
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.internal.FailoverLoader$1.create(FailoverLoader.java:45)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.internal.FailoverLoader$1.create(FailoverLoader.java:40)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.internal.Memoizer.get(Memoizer.java:56)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:57)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.internal.Modules.loadModules(Modules.java:43)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:174)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:138)
08-05 12:16:24.701: E/AndroidRuntime(19177): at dagger.ObjectGraph.create(ObjectGraph.java:129)
08-05 12:16:24.701: E/AndroidRuntime(19177): at com.github.pedrovgs.sample.DraggablePanelApplication.onCreate(DraggablePanelApplication.java:39)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1017)
08-05 12:16:24.701: E/AndroidRuntime(19177): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4590)
08-05 12:16:24.701: E/AndroidRuntime(19177): ... 10 more
Hi,
I am using Draggable panel and resizing feature to play videos. The issue is when i minimize the panel, it is half hidden in the screen and does not close to left or Right in minimize state.
Please Look into the issue.
There were many issues, that minimised youtubeplayersupportfragment displays only topleft corner of the video. And there were recommendations which did not work: set draggable_panel:top_view_resize="true"/ It did not work because this paramenter was never transmited to draggableview ( as i see in latest 1.6 snapshot version of source library) after I modefied
public void initializeView() {
checkFragmentConsistency();
checkSupportFragmentManagerConsistency();
inflate(getContext(), R.layout.draggable_panel, this);
draggableView = (DraggableView) findViewById(R.id.draggable_view);
draggableView.setTopViewHeight(topFragmentHeight);
draggableView.setFragmentManager(fragmentManager);
draggableView.attachTopFragment(topFragment);
draggableView.setXTopViewScaleFactor(xScaleFactor);
draggableView.setYTopViewScaleFactor(yScaleFactor);
draggableView.setTopViewMarginRight(topFragmentMarginRight);
draggableView.setTopViewMarginBottom(topFragmentMarginBottom);
draggableView.attachBottomFragment(bottomFragment);
draggableView.setDraggableListener(draggableListener);
draggableView.setTopViewResize(true);
draggableView.setHorizontalAlphaEffectEnabled(enableHorizontalAlphaEffect);
}
inside DragablePanel.java? I can see nice resied minimised youtubeplayerfragment
ScreenShot
But new issue arise from this. Dragview became overlaped by few pixels and i cant understand where it comes from.
01-16 12:04:41.863 30020-30020/bigdig.yarh.ellotv.activitytry W/YouTubeAndroidPlayerAPI﹕ YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is not contained inside its ancestor android.widget.FrameLayout{41c08630 V.E..... ........ 360,914-720,1114 #7f0d00ae app:id/drag_view}. The distances between the ancestor's edges and that of the YouTubePlayerView is: left: 0, top: 0, right: -3, bottom: -1 (these should all be positive).
i am runing the code in eclipse and add all library needed but this error keep crashing my app , in Read Me itis supposed to build with gradle would you please help me how to run this app in gradle may be this is my problem :(
java.lang.RuntimeException: Unable to create application com.github.pedrovgs.sample.DraggablePanelApplication: java.lang.IllegalStateException: Module adapter for class com.github.pedrovgs.sample.di.MainModule could not be loaded. Please ensure that code generation was run for this module.
Do a rezise and rotate the DragView, Very useful for videos and photos.
I'll do it. :3
Hi @pedrovgs, I see as a need to implement a shadow on DraggableView equal implementation of youtube. This shadow surrounds the view and is very light. We can also implement the user the possibility to choose the nine-patch into the shade.
Just tried to changed style of youtube player id for maximised panel and minimised. However when I drag panel up and down i never see corresponding log messages.
private void hookDraggablePanelListeners() {
draggablePanel.setDraggableListener(
new DraggableListener() {
@Override
public void onMaximized() {
playVideo();
youtubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
Toast.makeText(getActivity(),"Maximised",Toast.LENGTH_SHORT).show();
Log.e("dragg", "maximised");
}
@Override
public void onMinimized() {
youtubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS);
Toast.makeText(getActivity(), "Minimised", Toast.LENGTH_SHORT)
.show();
Log.e("dragg", "minimised");
}
@Override
public void onClosedToLeft() {
pauseVideo();
}
@Override
public void onClosedToRight() {
pauseVideo();
}
}
);
}
Note: video is paused, when closed to right or left not because of listeners, but because of " YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is not contained inside its ancestor com.github.pedrovgs.DraggableView{41c02fd0 V.E..... .......D 0,0-720,1134 #7f0d00ac app:id/draggable_view}. The distances between the ancestor's edges and that of the YouTubePlayerView is: left: -720, top: 734, right: 720, bottom: 0 (these should all be positive)." When youtube fragment is out of screen
edit:
My xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:draggable_panel="http://schemas.android.com/apk/res-auto"
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical">
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.twotoasters.jazzylistview.JazzyGridView
android:animationCache="false"
android:scrollingCache="false"
android:animateLayoutChanges="true"
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="0dip"
android:numColumns="1"
android:background="#40000000"
android:verticalSpacing="16dip"
android:horizontalSpacing="16dip"
android:stretchMode="columnWidth" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
<com.github.pedrovgs.DraggablePanel
android:id="@+id/draggable_panel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
draggable_panel:x_scale_factor="@dimen/x_scale_factor"
draggable_panel:y_scale_factor="@dimen/y_scale_factor"
draggable_panel:top_view_id="@+id/minimised_video"
draggable_panel:top_view_resize="true"
draggable_panel:top_fragment_height="@dimen/top_fragment_height"
draggable_panel:enable_horizontal_alpha_effect="false" />
</FrameLayout>
Can use Rebound (Facebook library) to provide animations to fullscreen feature?
If yes, Can we create a dependency of this view to remove unecessary dependencies of this amazing library?
I want to hide action bar when draggable panel is maximised and show it otherwise.
I tried
private void hookDraggablePanelListeners() {
draggablePanel.setDraggableListener(
new DraggableListener() {
@Override
public void onMaximized() {
videoHolderFragment.maximised();
comScore.onUxActive();
if(getActionBar()!=null)getActionBar().hide();
}
@Override
public void onMinimized() {
if(getActionBar() != null) getActionBar().show();
videoHolderFragment.minimised();
}
@Override
public void onClosedToLeft() {
videoHolderFragment.pauseAll();
comScore.onUxInactive();
}
@Override
public void onClosedToRight() {
videoHolderFragment.pauseAll();
comScore.onUxInactive();
}
}
);
}
But in such aproach there is an issue: action bar is shown after DP is minimised and thus, when action bar appears it moves DP slightly down.
I am using draggable panel library in my project . Just like youtube app fades to transparent halfway when move to left or right(when vedio is minimized) . In this demo sample app it is not showing such behavior though i can find code is there for handling setEnablealpha() .
So how to solve this issue
hi, when landscape videoview will fullscreen and i want to disable drag and restore drag event when portrait
I have used Draggble Panel with top fragment is a Youtube Fragment.
But some time, my Youtube Player have been released. So I need to re initialize a youtube fragment then set it to top fragment.
I recalled: mDragblePanel.setTopFragment(myNewYouTubeFragment), then mDragblePanel.initializeView(). But my draggble panel is unable to drag!
Please consider me a solution!
The YouTube video in the YoutubeSampleActivity is not re-sized when you drag the video to the bottom of the screen, whereas the video in the VideoSampleActivity does.
If you could add this support to the YouTube videos that would be great.
Added two fragments to DraggablePanel
one is Video player second one is list fragment
while maximizing the view, videoview is getting moved slightly then it will have some empty space in corners
its not happening with normal views like images its happening only while playing video
When switching to landscape the movie is on half of tge screen and tge image on the other
when I am in minimized state(at end of screen) screen goes white but when in maximized state and while dragging it is working fine... please help me.. screenshots are attached
http://prntscr.com/69yge2 (while dragging)
http://prntscr.com/69yfpa (in minimized state)
i want to show video view in full screen using draggable view when we rotate to landscape mode.
but i am having some problem . please help me to solve this problem
Hi Pedrovgs,Fiddl3,
I am facing this wierd issue. For the first time when i change the device orientation from portrait to landscape, Top view resizes properly and everything works fine.
However when i minimise it once and then changes orientation, The width of Topview reduces to half. Also next time if i change the orientation from maximized portrait mode, it still shows me the half video view.
What modifications changes do i need to do for Release 5 ,because it was working fine in Release 1.2 and post it i updated it directly to R5.
I am using following code to run my demo using draggable pannel library
// Mainactivity
public class MainActivity extends FragmentActivity {
private static final String YOUTUBE_API_KEY = "AIzaSyC1rMU-mkhoyTvBIdTnYU0dss0tU9vtK48";
private static final String VIDEO_KEY = "gsjtg7m1MMM";
private static final String VIDEO_POSTER_THUMBNAIL = "http://4.bp.blogspot.com/-BT6IshdVsoA/UjfnTo_TkBI/AAAAAAAAMWk/JvDCYCoFRlQ/s1600/xmenDOFP.wobbly.1.jpg";
private static final String SECOND_VIDEO_POSTER_THUMBNAIL = "http://media.comicbook.com/wp-content/uploads/2013/07/x-men-days-of-future-past-wolverine-poster.jpg";
private static final String VIDEO_POSTER_TITLE = "X-Men: Days of Future Past";
private YouTubePlayer youtubePlayer;
private YouTubePlayerSupportFragment youtubeFragment;
ImageView thumbnailImageView;
main.java.com.github.pedrovgs.DraggablePanel draggablePanel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
thumbnailImageView = (ImageView)findViewById(R.id.iv_thumbnail);
draggablePanel = (DraggablePanel)findViewById(R.id.draggable_panel);
initializeYoutubeFragment();
initializeDraggablePanel();
hookDraggablePanelListeners();
thumbnailImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
draggablePanel.maximize();
}
});
}
/**
* Initialize the YouTubeSupportFrament attached as top fragment to the DraggablePanel widget and reproduce the
* YouTube video represented with a YouTube url.
*/
private void initializeYoutubeFragment() {
youtubeFragment = new YouTubePlayerSupportFragment();
youtubeFragment.initialize(YOUTUBE_API_KEY,
new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
youtubePlayer = player;
youtubePlayer.loadVideo(VIDEO_KEY);
youtubePlayer.setShowFullscreenButton(true);
}
}
@Override
public void onInitializationFailure(Provider arg0,
com.google.android.youtube.player.YouTubeInitializationResult arg1) {
// TODO Auto-generated method stub
}
}
);
}
/**
* Initialize and configure the DraggablePanel widget with two fragments and some attributes.
*/
private void initializeDraggablePanel() {
draggablePanel.setFragmentManager(getSupportFragmentManager());
draggablePanel.setTopFragment(youtubeFragment);
MoviePosterFragment moviePosterFragment = new MoviePosterFragment();
moviePosterFragment.setPoster(VIDEO_POSTER_THUMBNAIL);
moviePosterFragment.setPosterTitle(VIDEO_POSTER_TITLE);
draggablePanel.setBottomFragment(moviePosterFragment);
draggablePanel.initializeView();
Picasso.with(this).load(SECOND_VIDEO_POSTER_THUMBNAIL).placeholder(R.drawable.xmen_placeholder).into(thumbnailImageView);
}
/**
* Hook the DraggableListener to DraggablePanel to pause or resume the video when the DragglabePanel is maximized
* or closed.
*/
private void hookDraggablePanelListeners() {
draggablePanel.setDraggableListener(new DraggableListener() {
@Override
public void onMaximized() {
playVideo();
}
@Override
public void onMinimized() {
//Empty
}
@Override
public void onClosedToLeft() {
pauseVideo();
}
@Override
public void onClosedToRight() {
pauseVideo();
}
});
}
/**
* Pause the video reproduced in the YouTubePlayer.
*/
private void pauseVideo() {
if (youtubePlayer.isPlaying()) {
youtubePlayer.pause();
}
}
/**
* Resume the video reproduced in the YouTubePlayer.
*/
private void playVideo() {
if (!youtubePlayer.isPlaying()) {
youtubePlayer.play();
}
}
MoviePosterFragment.java
public class MoviePosterFragment extends Fragment {
ImageView thumbnailImageView;
private String videoPosterThumbnail;
private String posterTitle;
/**
* Override method used to initialize the fragment.
*
* @param inflater
* @param container
* @param savedInstanceState
* @return
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_movie_poster, container, false);
thumbnailImageView = (ImageView)view.findViewById(R.id.iv_thumbnail);
thumbnailImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
onThubmnailClicked();
}
});
ButterKnife.inject(this, view);
Picasso.with(getActivity()).load(videoPosterThumbnail).placeholder(R.drawable.xmen_placeholder).into(thumbnailImageView);
return view;
}
/**
* Show the poster image in the thumbnailImageView widget.
*
* @param videoPosterThumbnail
*/
public void setPoster(String videoPosterThumbnail) {
this.videoPosterThumbnail = videoPosterThumbnail;
}
/**
* Store the poster title to show it when the thumbanil view is clicked.
*
* @param posterTitle
*/
public void setPosterTitle(String posterTitle) {
this.posterTitle = posterTitle;
}
void onThubmnailClicked() {
Toast.makeText(getActivity(), posterTitle, Toast.LENGTH_SHORT).show();
}
}
On running it i am getting following error
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo/com.example.demo.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class com.github.pedrovgs.DraggablePanel
[10:21:35 AM] Manpreet Singh: 10-14 10:11:26.213: D/dalvikvm(8932): Late-enabling CheckJNI
10-14 10:11:26.373: D/AndroidRuntime(8932): Shutting down VM
10-14 10:11:26.373: W/dalvikvm(8932): threadid=1: thread exiting with uncaught exception (group=0x4192dba8)
10-14 10:11:26.433: E/AndroidRuntime(8932): FATAL EXCEPTION: main
10-14 10:11:26.433: E/AndroidRuntime(8932): Process: com.example.demo, PID: 8932
10-14 10:11:26.433: E/AndroidRuntime(8932): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo/com.example.demo.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class com.github.pedrovgs.DraggablePanel
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.os.Handler.dispatchMessage(Handler.java:102)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.os.Looper.loop(Looper.java:136)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.main(ActivityThread.java:5001)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.reflect.Method.invokeNative(Native Method)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.reflect.Method.invoke(Method.java:515)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
10-14 10:11:26.433: E/AndroidRuntime(8932): at dalvik.system.NativeStart.main(Native Method)
10-14 10:11:26.433: E/AndroidRuntime(8932): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.github.pedrovgs.DraggablePanel
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.Activity.setContentView(Activity.java:1929)
10-14 10:11:26.433: E/AndroidRuntime(8932): at com.example.demo.MainActivity.onCreate(MainActivity.java:33)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.Activity.performCreate(Activity.java:5231)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
10-14 10:11:26.433: E/AndroidRuntime(8932): ... 11 more
10-14 10:11:26.433: E/AndroidRuntime(8932): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.github.pedrovgs.DraggablePanel" on path: DexPathList[[zip file "/data/app/com.example.demo-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.demo-2, /vendor/lib, /system/lib]]
10-14 10:11:26.433: E/AndroidRuntime(8932): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
10-14 10:11:26.433: E/AndroidRuntime(8932): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.createView(LayoutInflater.java:559)
10-14 10:11:26.433: E/AndroidRuntime(8932): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
10-14 10:11:26.433: E/AndroidRuntime(8932): ... 21 more
Hi,
I am trying to show my DraggablePanel videoView in Landscape mode,but is not covering the even half the screen instead it just rotates the TopView with same dimensions.
Please look into the issue.
From the minimized DraggablePanel, tryCaptureView in DraggableViewCallback returns false
I changed support.v4.app.Fragment to app.Fragment and support.v4.app.FragmentManager to app.FragmentManager.
When I don't use DraggableView with Fragment, it works very well
But I use DraggableView with Fragment or DraggablePanel, it returns false.
Please let me know how to solve this problem
Allow the user to move the bottom view over the top or vice-versa.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.