我一直在关注谷歌的导航抽屉指南,我想将它添加到带有标签和手势的活动中.
我想禁用打开导航抽屉的手势,有没有人知道如何做到这一点?
我实现了SwipeRefreshLayout
和ViewPager
我的应用程序,但有一个大麻烦:每当我要去刷卡左/右滚动页面之间切换过于敏感.稍微向下滑动也会触发SwipeRefreshLayout
刷新.
我想设置水平滑动开始时的限制,然后强制水平直到滑动结束.换句话说,当手指水平移动时,我想取消垂直滑动.
这个问题只发生在ViewPager
,如果我向下滑动并SwipeRefreshLayout
触发刷新功能(显示条形图)然后我水平移动手指,它仍然只允许垂直滑动.
我试图扩展ViewPager
课程,但它根本不起作用:
public class CustomViewPager extends ViewPager {
public CustomViewPager(Context ctx, AttributeSet attrs) {
super(ctx, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
boolean in = super.onInterceptTouchEvent(ev);
if (in) {
getParent().requestDisallowInterceptTouchEvent(true);
this.requestDisallowInterceptTouchEvent(true);
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
布局xml:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/viewTopic"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.myapp.listloader.foundation.CustomViewPager
android:id="@+id/topicViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.v4.widget.SwipeRefreshLayout>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,谢谢
我想知道像SwipePad和Wave Launcher这样的应用程序是如何通过服务来检测触摸手势/事件的.这些应用程序能够检测到触摸手势,即使它不在自己的活动中.我看过整个互联网,但没有找到他们如何做到这一点.
我的主要问题是服务如何监听触摸客户/事件,就像常规活动可能会收到MotionEvents一样,即使它可能不在原始活动或上下文中.我本质上是在尝试构建一个应用程序,该应用程序将从用户处重新识别特定的触摸手势,无论哪个Activity位于顶部,并在该手势被识别时执行某些操作.触摸识别将是在后台作为服务运行的线程.
我有一个滚动页面,我最少指定两个手指.它适用于我的设备,但不知道如何在模拟器上模仿这个手势.我可以毫无问题地模仿单指滚动.我已经尝试过选项/ ctrl/shift等,但无法让它工作.也许我的组合错了.谁知道怎么样?谢谢.
Android支持onLongPress上的事件.我的问题是"多长时间"(以毫秒为单位)是触发事件的"按压"?
知道是否有办法获得滑动手势或触摸的长度,以便我可以计算距离?
我想在我的Android应用中制作视图,在滑动/拖动时在多个视图之间翻转.我希望它的行为或多或少像Android Launcher在视图之间翻转时的行为.特别是,
根据Romain Guy的博客文章,我尝试使用带有GestureOverlayView的ViewFlipper ,但是当用户正在刷卡时,没有任何指示.这使得可发现性变得困难,这可能是因为Launcher以他们的方式做到了这一点.
我尝试使用Gallery对象,但是当我从左向右滑动时,会有一定的动量使用户在所有视图中晃动而不是仅仅将它们带到下一个视图.
有没有一个好方法来完成我想要做的事情?
我正在尝试使用包含ScrollViews的ViewFlipper创建布局.我们的想法是检测水平滑动以移动到上一个/下一个ScrollView.此外,ScrollView包含另一个ViewFlipper,其中包含带有垂直滑动检测器的ImageView,可以转到上一个/下一个ImageView.当我用LinearLayout替换ScrollView时,两个手势检测器都能正常工作,但是使用ScrollView时,没有任何工作(手势监听器甚至不是触发器).为什么使用ScrollView会禁用我的手势检测器?我怎样才能使它工作?
活动
public class ProduitHome extends Activity{
private Resources res;
float density;
private int position, parent_id;;
private int num_products;
private Produit produit;
private ImageDownloader mImageLoader;
private ViewFlipper product_viewflipper;
private ScrollView current_product_layout;
Animation next_product_out, next_product_in, previous_product_in, previous_product_out;
private GestureDetector galleryGestureDetector;
private View.OnTouchListener galleryGestureListener;
private GestureDetector productGestureDetector;
private View.OnTouchListener productGestureListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.produit_home);
num_products = GlobalData.map_list_produits.get(parent_id).size();
product_viewflipper = (ViewFlipper) findViewById(R.id.product_viewflipper);
LayoutInflater inflater = getLayoutInflater();
// Add num_products view to the viewflipper
for(int i=0; i<num_products; i++){
ScrollView product_detail …
Run Code Online (Sandbox Code Playgroud) 我目前有一个自定义的UITableViewCell,它包含一个UIImageView,并试图在UIImageView上添加UITapGestureRecognizer而没有运气.这是代码片段.
//within cellForRowAtIndexPath (where customer table cell with imageview is created and reused)
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleImageTap:)];
tap.cancelsTouchesInView = YES;
tap.numberOfTapsRequired = 1;
tap.delegate = self;
[imageView addGestureRecognizer:tap];
[tap release];
// handle method
- (void) handleImageTap:(UIGestureRecognizer *)gestureRecognizer {
RKLogDebug(@"imaged tab");
}
Run Code Online (Sandbox Code Playgroud)
我还在单元格和UIImageView的超级视图上设置了userInteractionEnabled,但仍然没有运气,任何提示?
编辑:
我也通过cell.selectionStyle = UITableViewCellSelectionStyleNone删除单元格的选择; 这可能是个问题
我在哪里可以找到所有(许多)触摸屏手势的列表,包括适用于iPad的复杂4和5手指,具有合理的技术实现指南和代码(C++/Java)示例?