Mobile/Android

SlingPaneLayout

out of coding 2014. 8. 6. 14:13

비슷한 기능을 가지고 있는, NavigationDrawer가 존재한다.

다른점이라고 한다면, 이녀석은 layout을 밀면서 등장한다.


SlidingPaneLayout의 먼저 지정하는 부분이 sliding으로 정의되고, 나중 부분이 main content로 정의된다.


NavigationDrawer와 마찬가지로 edge touch를 통한 sliding를 지원한다.


* xml

<android.support.v4.widget.SlidingPaneLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     >
    <fragment android:id="@+id/sliding_fragment"
              android:name="com.mrgamza.example.LeftFragment"
              android:layout_width="200dp"
              android:layout_height="match_parent"
              android:layout_gravity="left" />
     
    <fragment android:id="@+id/main_fragment"
              android:name="com.mrgamza.example.MainFragment"
              android:layout_width="300dp"
              android:layout_height="match_parent"
              android:layout_gravity="right"
              android:layout_weight="1" /> 
</android.support.v4.widget.SlidingPaneLayout>


* Java

public class MainGameActivity extends Activity {

	private SlidingPaneLayout mSlidingPaneLayout;

	private class SliderListener implements SlidingPaneLayout.PanelSlideListener {
	 
	    @Override
	    public void onPanelClosed(View view) {
		// ...
	     }
	 
	    @Override
	    public void onPanelOpened(View view) {
		// ...
	    }
	 
	    @Override
	    public void onPanelSlide(View view, float arg1) {
		// ...
	    }     
	}

	@Override
	protected final void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);

		mSlidingPaneLayout = (SlidingPaneLayout)findViewById(R.id.rootLayout);
		mSlidingPaneLayout.setPanelSlideListener(new SliderListener());
	}
}