質問編集履歴

4

pass

2017/12/08 12:29

投稿

kevin.c.michael
kevin.c.michael

スコア27

test CHANGED
File without changes
test CHANGED
@@ -39,6 +39,8 @@
39
39
  class Scroll_B(ScrollView):
40
40
 
41
41
  def on_scroll_move(self, touch):
42
+
43
+ pass
42
44
 
43
45
 
44
46
 

3

文章変更コード追加

2017/12/08 12:29

投稿

kevin.c.michael
kevin.c.michael

スコア27

test CHANGED
File without changes
test CHANGED
@@ -1,17 +1,115 @@
1
- KivyのScrollViewが複数あったとして、それらのスクロール量を同期させるためのコードを書いているのですが、問題がありま
1
+ KivyのScrollViewが複数あったとして、それらのスクロール量を同期させるためのコードを書いているのですが、リアルタイムで同期るにはどのようなコードを書けば良いですか?
2
2
 
3
- じめ複数scrollviewのち一つからscroll_yを取得し、もう一方のscrollview値を渡してやばうまくいくものと思っした。
3
+ 私のコードでは、下記scroll_yを別なscrollview値をれてますが、
4
4
 
5
- 問題は、のスクロールには慣性があタッチを離した後でもしばしスクロールが行われているので、on_touch_moveは使えないとことです
5
+ うすると、まずスクロールがおかしくります。たどたどしいと
6
6
 
7
- on_scroll_moveもありましたが、これをscrollviewクラス内で適用すると、スクロールしているのに、画面が動かないというおかしな事態になってしまいます。
8
-
9
-
10
-
11
- 慣性が問題のです、どのように解決すば良いのでしょうか?
7
+ それに、タッチアップし、再度タッチしければscroll_y同期さません。
12
-
13
- というより、値をモーションイベントあるなしにかかわらず、常に監視し、変更があった場合にのみscroll_yを取得するような方法はありますか?
14
8
 
15
9
 
16
10
 
17
11
  回答お願いします。
12
+
13
+
14
+
15
+ 簡単なサンプルコードを追加しました。
16
+
17
+ ```python
18
+
19
+ from kivy.app import App
20
+
21
+ from kivy.lang import Builder
22
+
23
+ from kivy.uix.scrollview import ScrollView
24
+
25
+ from kivy.properties import ObjectProperty
26
+
27
+
28
+
29
+ class Scroll_A(ScrollView):
30
+
31
+ scroll_b = ObjectProperty(None)
32
+
33
+ def on_scroll_move(self, touch):
34
+
35
+ self.scroll_b.scroll_y = self.scroll_y
36
+
37
+
38
+
39
+ class Scroll_B(ScrollView):
40
+
41
+ def on_scroll_move(self, touch):
42
+
43
+
44
+
45
+ Mykv = '''
46
+
47
+ GridLayout:
48
+
49
+ cols: 2
50
+
51
+ spacing: 100, 100
52
+
53
+ padding: 50, 50, 50, 50
54
+
55
+ Scroll_A:
56
+
57
+ id: scroll_a
58
+
59
+ scroll_b: scroll_b
60
+
61
+ do_scroll_y: True
62
+
63
+ pos_hint: {'top': 1}
64
+
65
+ Label:
66
+
67
+ size_hint_y: None
68
+
69
+ text_size: self.width, None
70
+
71
+ color: 1,1,1,1
72
+
73
+ height: self.texture_size[1]
74
+
75
+ text: 'X' * 1000
76
+
77
+ Scroll_B:
78
+
79
+ id: scroll_b
80
+
81
+ do_scroll_y: True
82
+
83
+ pos_hint: {'top': 1}
84
+
85
+ Label:
86
+
87
+ size_hint_y: None
88
+
89
+ text_size: self.width, None
90
+
91
+ color: 1,1,1,1
92
+
93
+ height: self.texture_size[1]
94
+
95
+ text: 'Y' * 1000
96
+
97
+ '''
98
+
99
+
100
+
101
+ class MyApp(App):
102
+
103
+
104
+
105
+ def build(self):
106
+
107
+ return Builder.load_string(Mykv)
108
+
109
+
110
+
111
+ if __name__ == '__main__':
112
+
113
+ MyApp().run()
114
+
115
+ ```

2

タグ追加

2017/12/08 12:04

投稿

kevin.c.michael
kevin.c.michael

スコア27

test CHANGED
File without changes
test CHANGED
File without changes

1

修正

2017/12/08 11:32

投稿

kevin.c.michael
kevin.c.michael

スコア27

test CHANGED
File without changes
test CHANGED
@@ -6,6 +6,12 @@
6
6
 
7
7
  on_scroll_moveもありましたが、これをscrollviewクラス内で適用すると、スクロールしているのに、画面が動かないというおかしな事態になってしまいます。
8
8
 
9
+
10
+
9
11
  慣性が問題なのですが、どのように解決すれば良いのでしょうか?
10
12
 
13
+ というより、値をモーションイベントあるなしにかかわらず、常に監視し、変更があった場合にのみscroll_yを取得するような方法はありますか?
14
+
15
+
16
+
11
17
  回答お願いします。