我在一个应用程序上使用了DropDown,但它在Android上不起作用。当我在笔记本上运行时,它运行得很好。但在Android上,当我触摸下拉列表时,似乎是“按钮被点击了”,但我看不到下拉列表的元素,什么都没有发生。在
这是我的主.py公司名称:
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
要想在Android上运行良好,还有什么不同的事情要做吗?在
目前没有回答
相关问题 更多 >
编程相关推荐