[设置]难以左右滑动显示大小的预览窗口

本文档详细记录了在设备设置中调整显示大小时,预览窗口难以滑动的问题修复过程。通过修改CustomViewPager类,增强了触控反馈,使得预览窗口能够更流畅地滑动,提升了用户体验。

[操作步骤]
1.打开"设置"——“显示”——“显示大小”
2.左右滑动预览窗口
[实际结果]
预览窗口难以滑动
[期望结果]
可以流畅滑动预览窗口

--- a/A8-N-V2/packages/apps/Settings/res/layout/preview_seek_bar_view_pager.xml
+++ b/A8-N-V2/packages/apps/Settings/res/layout/preview_seek_bar_view_pager.xml
@@ -21,8 +21,8 @@
     android:orientation="vertical"
     android:padding="@dimen/preview_pager_padding"
     android:background="@drawable/preview_seek_bar_outline" >
-
-    <android.support.v4.view.ViewPager
+    <com.android.settings.display.CustomViewPager
         android:id="@+id/preview_pager"
         android:layout_width="match_parent"
         android:layout_height="0dp"

--- a/A8-N-V2/packages/apps/Settings/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
+++ b/A8-N-V2/packages/apps/Settings/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
@@ -19,7 +19,7 @@ package com.android.settings;
 import android.content.Context;
 import android.content.res.Configuration;
 import android.os.Bundle;
-import android.support.v4.view.ViewPager;
+import com.android.settings.display.CustomViewPager;
 import android.support.v4.view.ViewPager.OnPageChangeListener;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
@@ -56,7 +56,7 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
     /** Resource id of the layout that defines the contents inside preview screen. */
     protected int[] mPreviewSampleResIds;
 
-    private ViewPager mPreviewPager;
+    private CustomViewPager mPreviewPager;
     private PreviewPagerAdapter mPreviewPagerAdapter;
     private DotsPageIndicator mPageIndicator;
 
@@ -157,7 +157,7 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
             configurations[i] = createConfig(origConfig, i);
         }
 
-        mPreviewPager = (ViewPager) content.findViewById(R.id.preview_pager);
+        mPreviewPager = (CustomViewPager) content.findViewById(R.id.preview_pager);
         mPreviewPagerAdapter = new PreviewPagerAdapter(context, isLayoutRtl,
                 mPreviewSampleResIds, configurations);
         mPreviewPager.setAdapter(mPreviewPagerAdapter);

添加packages/apps/Settings/src/com/android/settings/display/CustomViewPager.java

--- /dev/null
+++ b/A8-N-V2/packages/apps/Settings/src/com/android/settings/display/CustomViewPager.java
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+
+public class CustomViewPager extends ViewPager {
+
+    private int preX = 0;
+
+    public CustomViewPager(Context context) {
+        super(context);
+    }
+
+    public CustomViewPager(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent event) {
+        if (event.getAction() == MotionEvent.ACTION_DOWN){
+            preX = (int) event.getX();
+        } else {
+            if (Math.abs((event.getX() - preX)) > 10){
+                return true;
+            } else {
+                preX = (int) event.getX();
+            }
+        }
+        return super.onInterceptTouchEvent(event);
+    }
+}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最乱纷飞的code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值