[操作步骤]
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);
+ }
+}