Kivy下拉列表不适用于Android

Kivy下拉列表不适用于Android,android,python,drop-down-menu,kivy,dropdown,Android,Python,Drop Down Menu,Kivy,Dropdown,我在应用程序上使用下拉菜单,但它在Android上不起作用。当我在笔记本上跑步时,它工作正常。但在Android上,当我触摸下拉菜单时,似乎“按钮被点击了”,但我看不到下拉菜单的元素,什么都没有发生 这是我的main.py: 在安卓系统上运行良好,有什么不同的事情要做吗 我用Spinner做了类似的尝试,在android上运行得很好,但是我不能改变按钮的样式。由于这个原因,我使用了下拉菜单而不是微调器。使用微调器,我可以更改按钮的颜色,但不能更改所选选项或出现的第一个选项的颜色。在我的解决方

我在应用程序上使用下拉菜单,但它在Android上不起作用。当我在笔记本上跑步时,它工作正常。但在Android上,当我触摸下拉菜单时,似乎“按钮被点击了”,但我看不到下拉菜单的元素,什么都没有发生

这是我的main.py:


在安卓系统上运行良好,有什么不同的事情要做吗

我用Spinner做了类似的尝试,在android上运行得很好,但是我不能改变按钮的样式。由于这个原因,我使用了下拉菜单而不是微调器。使用微调器,我可以更改按钮的颜色,但不能更改所选选项或出现的第一个选项的颜色。在我的解决方案中,我将白色作为背景,但我无法选择其他颜色,因为背景始终为灰色。我尝试了类似于Spinner的方法,并在android上运行良好,但我无法更改按钮样式。由于这个原因,我使用了下拉菜单而不是微调器。使用微调器,我可以更改按钮的颜色,但不能更改所选选项或出现的第一个选项的颜色。在我的解决方案中,我将白色作为背景,但我无法选择其他颜色,因为背景始终保持灰色。

from kivy.app import App  
from kivy.uix.scrollview import ScrollView  
from kivy.uix.boxlayout import BoxLayout
from kivy.core.window import Window
import os 
from kivy.uix.tabbedpanel import TabbedPanel
import modelos
Window.clearcolor = (1, 1, 1, 1)


class DAP(App):

    title     = u'Aplicativo do DAP'       

    # Funções para evitar que o aplicativo desligue ao mudar o foco da tela no celular
    def on_pause(self):  return True
    def on_resume(self): pass

    def build(self):

         #Abas
        self.painel = TabbedPanel(background_color = modelos.cor_fundo,do_default_tab = False,background_normal='')
        self.aba_1  = modelos.gera_aba(u'Principal') ; self.painel.add_widget(self.aba_1)
        self.aba_2  = modelos.gera_aba(u'Registros') ; self.painel.add_widget(self.aba_2)
        self.aba_3  = modelos.gera_aba(u'Resumo')    ; self.painel.add_widget(self.aba_3)
        self.aba_4  = modelos.gera_aba(u'Tabela')    ; self.painel.add_widget(self.aba_4)

        self.cont_1 = modelos.gera_grid_padrao(Window)
        self.cont_2 = modelos.gera_grid_padrao(Window)
        self.cont_3 = modelos.gera_grid_padrao(Window)

        # Conteúdo da aba 1
        Bl = BoxLayout(spacing=1) ; Bl.add_widget(modelos.gera_label(u'',ha='center')) ; self.cont_1.add_widget(Bl) 
        Bl = BoxLayout(spacing=1) ; Bl.add_widget(modelos.gera_label(u'[b]Baixar passaporte[/b]',ha='center')) ; self.cont_1.add_widget(Bl) 
        Bl = BoxLayout(spacing=1) ; Bl.add_widget(modelos.gera_label(u'',ha='center')) ; self.cont_1.add_widget(Bl)  
        Bl = BoxLayout(spacing=1) ; 
        Bl.add_widget(modelos.gera_label(u'',hint=(0.2,1))) 
        Bl.add_widget(modelos.gera_lista((u'SR 600 km - Mogi das Cruzes', 'BRM 200 km Randonneurs Lapa 31/01/2016', 'BRM 300 km Randonneurs Lapa 12/12/2015'),(300,45),hint=(0.4,1))) ; 
        Bl.add_widget(modelos.gera_botao(u'Carregar',(45,45),hint=(0.2,1),fundo=(0,1,0,0.7))) 
        Bl.add_widget(modelos.gera_label(u'',hint=(0.2,1))) 
        self.cont_1.add_widget(Bl)  

        Bl = BoxLayout(spacing=1) ; Bl.add_widget(modelos.gera_label(u'[b]Texto 2[/b] - d')) ; self.cont_2.add_widget(Bl)  
        Bl = BoxLayout(spacing=1) ; Bl.add_widget(modelos.gera_label(u'[b]Texto 3[/b] - d')) ; self.cont_3.add_widget(Bl)  

        # Definições iniciais
        tamx = Window.system_size[0] ; tamy = Window.system_size[1] 

        # Scrollviews das abas
        scr_1 = ScrollView( size_hint_y=1, size_hint_x=1) ; scr_1.add_widget(self.cont_1)
        scr_2 = ScrollView( size_hint_y=1, size_hint_x=1) ; scr_2.add_widget(self.cont_2)
        scr_3 = ScrollView( size_hint_y=1, size_hint_x=1) ; scr_3.add_widget(self.cont_3)       

        # Atribuindo conteúdos às abas
        self.aba_1.content = scr_1
        self.aba_2.content = scr_2   
        self.aba_3.content = scr_3  

        return self.painel

    if __name__ in ('__main__','__android__'):

        DAP().run()




#The DropDown is on "modelos.py" and the respective code is this:



def gera_lista(elementos,tamanho,hint=(None,None)):

    lista          = DropDown()
    botaoprincipal = Button(text=u'Escolha um brevet', 
                            size_hint=hint,
                            size=tamanho, 
                            background_color = cor_fundo_botao,
                            color = cor_fonte_botao,
                            font_name=fonte_padrao,
                            background_normal='')

    for elemento in elementos:
        btn = Button(text=elemento, 
                     size_hint_y=None, 
                     height=tamanho[1], 
                     background_normal='',
                     background_color = cor_fundo_botao,
                     color = cor_fonte_botao,
                     font_name=fonte_padrao,
                     )
        btn.bind(on_release=lambda btn: lista.select(btn.text))
        lista.add_widget(btn)

    botaoprincipal.bind(on_release=lista.open)
    lista.bind(on_select=lambda instance, x: setattr(botaoprincipal, 'text', x))
    return botaoprincipal