侧滑-抽屉布局在主布局的下面
布局文件:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" tools:context="com.workspace.my.drawline.MainActivity"> <android.support.v4.widget.SlidingPaneLayout android:id="@+id/slidingPaneLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <!--抽屉里的--> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:entries="@array/lists" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> <!--主界面--> <FrameLayout android:id="@+id/frameLayout" android:background="#ffcccc" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </android.support.v4.widget.SlidingPaneLayout> </RelativeLayout>
碎片
public class MyFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout, null); TextView textView = (TextView) view.findViewById(R.id.textView); String value = getArguments().getString("value"); textView.setText(value); return view; } }
主活动:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FrameLayout frameLayout = (FrameLayout) findViewById(R.id.frameLayout); final ListView listView = (ListView) findViewById(R.id.listView); final SlidingPaneLayout slidingPaneLayout = (SlidingPaneLayout) findViewById(R.id.slidingPaneLayout); //为抽屉面设置监听 slidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { //正在滑动,slideOffset代表偏移量,范围[0,1] } @Override public void onPanelOpened(View panel) { //打开 } @Override public void onPanelClosed(View panel) { //关闭 } }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String item = (String) listView.getItemAtPosition(position); MyFragment fragment =new MyFragment(); Bundle bundle = new Bundle(); bundle.putString("value",item); fragment.setArguments(bundle); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.frameLayout,fragment).commit();//替换视图并提交 //将抽屉视图隐藏 slidingPaneLayout.closePane(); } }); } }
效果:
可见这里是将主布局滑开而现实抽屉布局