2

Kivyフレームワークの水平ListViewで作成する可能性はありますか?

すべての例は、垂直方向の要素のリストを作成する方法を示していますが、水平スクロールバーで水平に配置する必要があります。

デフォルト:

: :
| | | |
+--------------------+ ^
| | | | ^
| | 要素 5 | ^
| | | | | |
+--------------------+ |
| | | | | |
| | 要素 6 | | |
| | | | | |
+--------------------+ |
| | | | | |
| | 要素 7 | | |
| | | | v
+---------------------+ v
| | | | v
: :

私はしたいと思います:

... --+-----------+-----------+-----------+---- ...
      | | | | | | | |
      | | 要素 5 | 要素 6 | 要素 7 |
      | | | | | | | |
... --+-----------+-----------+-----------+---- ...

   <<<-------------------------------------------->>>
4

2 に答える 2

1

向きはハードコーディングされています。https://github.com/kivy/kivy/blob/master/kivy/uix/listview.pyを見ると、次のことがわかります。

Builder.load_string('''
<ListView>:
    container: container
    ScrollView:
        pos: root.pos
        on_scroll_y: root._scroll(args[1])
        do_scroll_x: False
        GridLayout:
            cols: 1
            id: container
            size_hint_y: None
''')

このファイルをプロジェクト ディレクトリにコピーし、これを次のように置き換えました。

Builder.load_string('''
<ListView>:
    container: container
    ScrollView:
        pos: root.pos
        on_scroll_y: root._scroll(args[1])
        do_scroll_x: False
        GridLayout:
            rows: 1
            id: container
            size_hint_y: None
''')

そして、このテストコードで:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from listview import ListView
from kivy.uix.gridlayout import GridLayout


class MainView(GridLayout):
    def __init__(self, **kwargs):
        kwargs['cols'] = 2
        super(MainView, self).__init__(**kwargs)

        list_view = ListView(item_strings=[str(index) for index in range(100)])

        self.add_widget(list_view)


if __name__ == '__main__':
    from kivy.base import runTouchApp
    runTouchApp(MainView(width=800))

水平リストを取得できました。ただし、スクロールが壊れました。目的の結果を得るには、この構成をさらに変更し、スクロール方法も変更する必要があるようです。

于 2013-08-19T00:14:52.857 に答える
0

RecyclerView のリリースにより、Android アプリでの listView の方向付けが非常に簡単になりました。RecyclerView ライブラリには LinearLayoutManager というクラスがあり、 ListView の向きを決定します。

http://whats-online.info/science-and-tutorials/87/Android-tutorial-Horizo​​ntal-RecyclerView-with-images-and-text-example/

デモを試してみたので、とてもうまく機能しています。私はあなたに明確に答えたことを願っています

于 2016-12-04T01:10:56.437 に答える