diff --git a/demo/AndroidManifest.xml b/demo/AndroidManifest.xml
index 458cbd42..f3d17855 100644
--- a/demo/AndroidManifest.xml
+++ b/demo/AndroidManifest.xml
@@ -14,7 +14,7 @@
android:label="@string/app_name"
android:theme="@style/AppTheme">
@@ -22,6 +22,15 @@
+
+
+
diff --git a/demo/res/layout/activity_viewpagerdemo.xml b/demo/res/layout/activity_viewpagerdemo.xml
new file mode 100644
index 00000000..a1f57ae7
--- /dev/null
+++ b/demo/res/layout/activity_viewpagerdemo.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -->
+
+
+
+
+
+
+
+
+
diff --git a/demo/res/layout/fragment_recyclerview.xml b/demo/res/layout/fragment_recyclerview.xml
new file mode 100644
index 00000000..153dcfff
--- /dev/null
+++ b/demo/res/layout/fragment_recyclerview.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/demo/src/com/sothree/slidinguppanel/demo/RecyclerViewFragment.java b/demo/src/com/sothree/slidinguppanel/demo/RecyclerViewFragment.java
new file mode 100644
index 00000000..ef1bc56a
--- /dev/null
+++ b/demo/src/com/sothree/slidinguppanel/demo/RecyclerViewFragment.java
@@ -0,0 +1,127 @@
+package com.sothree.slidinguppanel.demo;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class RecyclerViewFragment extends Fragment {
+ private static final String TAG = "Fragment";
+
+ public static RecyclerViewFragment newInstance(String text) {
+ RecyclerViewFragment fragment = new RecyclerViewFragment();
+ return fragment;
+ }
+
+ RecyclerView recyclerView;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ Log.d(TAG, "onCreateView");
+ View root = inflater.inflate(R.layout.fragment_recyclerview, container, false);
+// root.setBackgroundColor(Color.BLUE);
+
+ recyclerView = (RecyclerView) root.findViewById(R.id.recyclerView);
+ recyclerView.setLayoutManager(new LinearLayoutManager(root.getContext()));
+ final List your_array_list = Arrays.asList(
+ "This",
+ "Is",
+ "An",
+ "Example",
+ "ListView",
+ "That",
+ "You",
+ "Can",
+ "Scroll",
+ ".",
+ "It",
+ "Shows",
+ "How",
+ "Any",
+ "Scrollable",
+ "View",
+ "Can",
+ "Be",
+ "Included",
+ "As",
+ "A",
+ "Child",
+ "Of",
+ "SlidingUpPanelLayout",
+ "-------------------",
+ "This",
+ "Is",
+ "An",
+ "Example",
+ "ListView",
+ "That",
+ "You",
+ "Can",
+ "Scroll",
+ ".",
+ "It",
+ "Shows",
+ "How",
+ "Any",
+ "Scrollable",
+ "View",
+ "Can",
+ "Be",
+ "Included",
+ "As",
+ "A",
+ "Child",
+ "Of",
+ "SlidingUpPanelLayout"
+ );
+
+ recyclerView.setHasFixedSize(true);
+ recyclerView.setAdapter(new RecyclerView.Adapter() {
+
+ class ViewHolder extends RecyclerView.ViewHolder {
+ public TextView mTextView;
+
+ public ViewHolder(TextView v) {
+ super(v);
+ mTextView = v;
+ }
+ }
+
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ TextView v = (TextView) LayoutInflater.from(parent.getContext())
+ .inflate(android.R.layout.simple_list_item_1, parent, false);
+ // set the view's size, margins, paddings and layout parameters
+ ViewHolder vh = new ViewHolder(v);
+ return vh;
+ }
+
+ @Override
+ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+
+ ViewHolder h = (ViewHolder) holder;
+
+ h.mTextView.setText(your_array_list.get(position));
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return your_array_list.size();
+ }
+ });
+ return root;
+ }
+
+
+}
\ No newline at end of file
diff --git a/demo/src/com/sothree/slidinguppanel/demo/ViewPagerDemoActivity.java b/demo/src/com/sothree/slidinguppanel/demo/ViewPagerDemoActivity.java
new file mode 100644
index 00000000..3c8203ea
--- /dev/null
+++ b/demo/src/com/sothree/slidinguppanel/demo/ViewPagerDemoActivity.java
@@ -0,0 +1,202 @@
+package com.sothree.slidinguppanel.demo;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.widget.Toolbar;
+import android.text.Html;
+import android.text.method.LinkMovementMethod;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.TextView;
+import com.sothree.slidinguppanel.SlidingUpPanelLayout;
+import com.sothree.slidinguppanel.SlidingUpPanelLayout.PanelSlideListener;
+import com.sothree.slidinguppanel.SlidingUpPanelLayout.PanelState;
+
+import java.util.ArrayList;
+
+public class ViewPagerDemoActivity extends ActionBarActivity {
+ private static final String TAG = "DemoActivity";
+
+ private SlidingUpPanelLayout mLayout;
+
+ private ViewPager mViewPager;
+
+ protected ArrayList mFragmentList;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_viewpagerdemo);
+
+ setSupportActionBar((Toolbar) findViewById(R.id.main_toolbar));
+
+ mLayout = (SlidingUpPanelLayout) findViewById(R.id.sliding_layout);
+ mViewPager = (ViewPager) findViewById(R.id.pager);
+ mFragmentList = new ArrayList<>();
+
+ for (int i = 0; i < 3; i++) {
+ RecyclerViewFragment fragment = RecyclerViewFragment.newInstance("fragment" + i);
+ mFragmentList.add(fragment);
+ }
+
+ PagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
+ mViewPager.setAdapter(adapter);
+ mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ System.out.println("onPageSelected :" +position +",setScrollableView.");
+ //change set ScrollableView
+ mLayout.setScrollableView(mFragmentList.get(position).recyclerView);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+
+
+
+
+ mLayout.setPanelSlideListener(new PanelSlideListener() {
+ @Override
+ public void onPanelSlide(View panel, float slideOffset) {
+ Log.i(TAG, "onPanelSlide, offset " + slideOffset);
+ }
+
+ @Override
+ public void onPanelExpanded(View panel) {
+ Log.i(TAG, "onPanelExpanded");
+
+ }
+
+ @Override
+ public void onPanelCollapsed(View panel) {
+ Log.i(TAG, "onPanelCollapsed");
+
+ }
+
+ @Override
+ public void onPanelAnchored(View panel) {
+ Log.i(TAG, "onPanelAnchored");
+ }
+
+ @Override
+ public void onPanelHidden(View panel) {
+ Log.i(TAG, "onPanelHidden");
+ }
+ });
+
+ TextView t = (TextView) findViewById(R.id.name);
+ t.setText(Html.fromHtml(getString(R.string.hello)));
+ Button f = (Button) findViewById(R.id.follow);
+ f.setText(Html.fromHtml(getString(R.string.follow)));
+ f.setMovementMethod(LinkMovementMethod.getInstance());
+ f.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent i = new Intent(Intent.ACTION_VIEW);
+ i.setData(Uri.parse("http://www.twitter.com/umanoapp"));
+ startActivity(i);
+ }
+ });
+ }
+
+ class MyPagerAdapter extends FragmentPagerAdapter {
+
+ public MyPagerAdapter(android.support.v4.app.FragmentManager fm) {
+ super(fm);
+ }
+
+ @Override
+ public int getCount() {
+ return mFragmentList.size();
+ }
+
+ @Override
+ public android.support.v4.app.Fragment getItem(int position) {
+ return mFragmentList.get(position);
+ }
+
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.demo, menu);
+ MenuItem item = menu.findItem(R.id.action_toggle);
+ if (mLayout != null) {
+ if (mLayout.getPanelState() == PanelState.HIDDEN) {
+ item.setTitle(R.string.action_show);
+ } else {
+ item.setTitle(R.string.action_hide);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ return super.onPrepareOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()){
+ case R.id.action_toggle: {
+ if (mLayout != null) {
+ if (mLayout.getPanelState() != PanelState.HIDDEN) {
+ mLayout.setPanelState(PanelState.HIDDEN);
+ item.setTitle(R.string.action_show);
+ } else {
+ mLayout.setPanelState(PanelState.COLLAPSED);
+ item.setTitle(R.string.action_hide);
+ }
+ }
+ return true;
+ }
+ case R.id.action_anchor: {
+ if (mLayout != null) {
+ if (mLayout.getAnchorPoint() == 1.0f) {
+ mLayout.setAnchorPoint(0.7f);
+ mLayout.setPanelState(PanelState.ANCHORED);
+ item.setTitle(R.string.action_anchor_disable);
+ } else {
+ mLayout.setAnchorPoint(1.0f);
+ mLayout.setPanelState(PanelState.COLLAPSED);
+ item.setTitle(R.string.action_anchor_enable);
+ }
+ }
+ return true;
+ }
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (mLayout != null &&
+ (mLayout.getPanelState() == PanelState.EXPANDED || mLayout.getPanelState() == PanelState.ANCHORED)) {
+ mLayout.setPanelState(PanelState.COLLAPSED);
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+
+}
diff --git a/library/build.gradle b/library/build.gradle
index 9c0062e2..e188de47 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -37,4 +37,4 @@ android {
}
}
-apply from: '../maven_push.gradle'
\ No newline at end of file
+//apply from: '../maven_push.gradle'
\ No newline at end of file