我使用了来自" daimajia"的AndroidSwipeLayout图书馆。 Android Swipe Layout
虽然版本高于4.4 Kitkat,但它的工作正常。滑动布局的后视图从右侧滑动更多..
请参阅以下4.4 kitkat及以上版本
的附图Android Swipe Layout适用于Android Ver。 4.2(软糖)低于Kitkat
Android Swipe Layout - 右侧为Android版本提供更多幻灯片。 4.4 Kitkat及以上
答案 0 :(得分:7)
我做了一些研究,发现拖拽距离有问题。现在我已经找到了解决方法。这导致奇怪的动画跳跃但最终backview将转到正确的位置。我会尽力找到更好的解决方案。
在“SwipeLayout”课程中,我们需要修改“open”方法:
public void open(boolean smooth, boolean notify) {
View surface = getSurfaceView(), bottom = getCurrentBottomView();
if (surface == null) {
return;
}
int dx, dy;
Rect rect = computeSurfaceLayoutArea(true);
// if (smooth) {
// mDragHelper.smoothSlideViewTo(surface, rect.left, rect.top);
// } else {
dx = rect.left - surface.getLeft();
dy = rect.top - surface.getTop();
surface.layout(rect.left, rect.top, rect.right, rect.bottom);
if (getShowMode() == ShowMode.PullOut) {
Rect bRect = computeBottomLayoutAreaViaSurface(ShowMode.PullOut, rect);
if (bottom != null) {
bottom.layout(bRect.left, bRect.top, bRect.right, bRect.bottom);
}
}
if (notify) {
dispatchRevealEvent(rect.left, rect.top, rect.right, rect.bottom);
dispatchSwipeEvent(rect.left, rect.top, dx, dy);
} else {
safeBottomView();
}
// }
invalidate();
}
答案 1 :(得分:1)
我已经解决了这个问题...
这是我用于swipelayout的xml
<?xml version="1.0" encoding="utf-8" ?>
<com.synsoft.foodjini.swipelib.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:swipe="http://schemas.android.com/tools"
android:id="@+id/swipe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
swipe:leftEdgeSwipeOffset="0dp"
swipe:rightEdgeSwipeOffset="0dp"
swipe:show_mode="lay_down"
android:background="@color/colorPrimary">
<LinearLayout
android:id="@+id/cart.item.back"
android:layout_width="600px"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:orientation="horizontal"
android:gravity="center"
android:tag="Bottom3"
android:weightSum="10"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:paddingTop="12dp"
android:paddingBottom="12dp">
<ImageView
android:id="@+id/edit"
android:layout_width="120dp"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:layout_gravity="center"
android:src="@drawable/cart_main_item_edit_ico"/>
<ImageView
android:id="@+id/delete"
android:layout_width="120dp"
android:scaleType="centerInside"
android:layout_gravity="center"
android:layout_height="match_parent"
android:src="@drawable/cart_main_item_delete_ico"/>
</LinearLayout>
<RelativeLayout
android:id="@+id/cart.item.front"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:background="@android:color/white">
<TextView
android:id="@+id/quantities"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textSize="18sp"
android:textStyle="normal"/>
<TextView
android:id="@+id/cart.item.names"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:text="X Item Name Lorem Ipsum"
android:layout_marginLeft="12dp"
android:ellipsize="end"
android:singleLine="true"
android:textAllCaps="true"
android:layout_toRightOf="@+id/quantities"
android:textSize="18sp"
android:textStyle="normal"/>
<TextView
android:id="@+id/cart.item.portions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="small"
android:layout_toRightOf="@+id/cart.item.names"
android:layout_alignBottom="@+id/cart.item.names"
android:textSize="13sp"
android:textAllCaps="true"
android:textStyle="normal"/>
<TextView
android:id="@+id/cart.item.prices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20.00"
android:layout_alignParentRight="true"
android:drawableLeft="@drawable/cart_item_rupee_ico"
android:drawablePadding="6dp"
android:layout_alignBottom="@+id/cart.item.names"
android:textSize="16sp"
android:textStyle="normal"/>
<ImageView
android:id="@+id/cart.item.divider1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cart_main_item_sap"
android:layout_marginTop="12dp"
android:layout_below="@+id/cart.item.names"
android:layout_alignLeft="@+id/cart.item.names"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="@+id/cart.item.divider1"
android:id="@+id/cart.item.addons.tag"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp">
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cart_main_item_sap"
android:layout_marginTop="6dp"
android:layout_below="@+id/cart.item.addons.tag"
android:layout_alignLeft="@+id/cart.item.names"/>
</RelativeLayout>
我所做的是与SwipeLayout的背景相匹配 (parentlayout)和后视图(swipeview) android:background =&#34; @ color / colorPrimary&#34; ..如果是backview 定位是不恰当的,视图似乎不那么不对称
同时将SwipeLayout的show_mode更改为lay_down 和前景到白色的背景
因此,跳过kitkat及更高版本上的问题。
虽然它不是正确的解决方案..将来我必须研究lib并尝试找出为什么定位不适合上面的kitkat