Android 碎片覆盖另一个碎片,可以向上滑动关闭
我已经使片段A全屏覆盖另一个片段B。我想处理滑动触摸,可以关闭片段A向上滑动并向下滑动重新打开它 我制作了这个示例图像:Android 碎片覆盖另一个碎片,可以向上滑动关闭,android,touch,fragment,swipe,Android,Touch,Fragment,Swipe,我已经使片段A全屏覆盖另一个片段B。我想处理滑动触摸,可以关闭片段A向上滑动并向下滑动重新打开它 我制作了这个示例图像: 我如何实现这一点?我还没有找到关于这个特殊案例的任何教程。谢谢。编译“me.imid.swipebacklayout.lib:library:1.0.0” <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sche
我如何实现这一点?我还没有找到关于这个特殊案例的任何教程。谢谢。编译“me.imid.swipebacklayout.lib:library:1.0.0”
<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.example.darwich.swipetoclose.MainActivity">
<RadioGroup
android:id="@+id/id_radioGroup"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/mode_left"
android:text="Left"
android:textSize="24sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/mode_right"
android:text="Right"
android:textSize="24sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/mode_bottom"
android:text="Bottom"
android:textSize="24sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/all"
android:text="All"
android:textSize="24sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RadioGroup>
</RelativeLayout>
经过几次研究,我发现了一个库,使滑动面板的实现非常容易 这是Umano Android面板
如果您修改为向上和向下,您可以使用FragmentManager处理想要的fragment.ty以获得回复,现在我尝试
public class MainActivity extends SwipeBackActivity {
private SwipeBackLayout swipeBackLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RadioGroup trackingModeGroup = (RadioGroup) findViewById(R.id.id_radioGroup);
swipeBackLayout = getSwipeBackLayout();
trackingModeGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int edgeFlag;
switch (checkedId) {
case R.id.mode_left:
edgeFlag = SwipeBackLayout.EDGE_LEFT;
break;
case R.id.mode_right:
edgeFlag = SwipeBackLayout.EDGE_RIGHT;
break;
case R.id.mode_bottom:
edgeFlag = SwipeBackLayout.EDGE_BOTTOM;
break;
default:
edgeFlag = SwipeBackLayout.EDGE_ALL;
}
swipeBackLayout.setEdgeTrackingEnabled(edgeFlag);
}
});
}
}