2010-11-02 11 views
5

Chcę opracować zastępczą klawiaturę, ale obawiam się, że Android zakłada, że ​​ogólny obszar klawiatury będzie pojedynczym prostokątnym kształtem znajdującym się u dołu ekranu.Jak utworzyć ekranową klawiaturę z Androidem, która nie jest prostokątem w dolnej części ekranu?

Co zrobić, jeśli chcę, aby moja klawiatura składała się z wielu kształtów, które nie siedzą w dolnej części ekranu? Czy jestem od początku skazany na zagładę, czy też można robić to, co chcę?

Co się stanie, jeśli chcę, aby moja klawiatura była wyświetlana tylko wtedy, gdy telefon jest w określonej orientacji, ale gdy telefon jest trzymany w innej orientacji, używana jest normalna klawiatura? Ponownie, szczęścia lub możliwe?

Pozdrawiam!

+0

Przepraszam, jeśli naprawdę "chcesz utworzyć" zastępczą klawiaturę systemu Android. :) Ciekawe pytanie, przy okazji. – MusiGenesis

+0

mwah ha, jestem, ale akceptuję twoją edycję! –

Odpowiedz

4

IME to tylko okno. Jest umieszczony względem dolnej części ekranu, więc nie możesz tego kontrolować. Ale możesz narysować w nim, co chcesz, lub nie dla miejsc, które chcesz być przezroczyste. Możesz kontrolować, ile aplikacji przenosi się z dala od edytora IME, dzięki czemu: http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html#onComputeInsets(android.inputmethodservice.InputMethodService.Insets)

Android nie pozwala, aby okna decydowały jedno po drugim, czy zdarzenia będą przez nie obsługiwane, czy wysyłane do okna za nimi; jedyną kontrolką, którą musisz utrzymać, aby zdarzenia nie były zużywane przez całe twoje okno, są stałe Insets.touchableInsets, które powiadamiają menadżera okien, aby zezwolił na zdarzenia spoza podanych insetów przejść do tego, co za tym stoi.

+0

Cześć, dzięki Hackbod, tego właśnie się obawiałem. Z mojego punktu widzenia byłoby wspaniale, gdybym mógł stworzyć okno klawiatury - lub, o ile to możliwe, okno (okna) pływające do dowolnego celu - które mogłoby pojawić się po dowolnej stronie ekranu i zmniejszyć dostępne miejsce dla podstawowej działalności w obszarze, którego nie zastępują. –

+0

To jest długie ujęcie, ale czy możliwe byłoby użycie przezroczystej funkcji pełnoekranowej jako fałszywego edytora IME? Wysyła dowolne postacie wpisane do działania bezpośrednio poniżej niego? A może myślisz o jakimkolwiek innym sposobie zhakowania tego, czego chcę? –

+0

OK, widzę bit w twoim linku o pełnoekranowym IME. Przypuszczam, że pozwoliłoby to technicznie robić to, co chcę, bez podstawowej interakcji z aktywnością leżącą u jej podstaw. Ta ostatnia część może być łamaczem kontraktów, trudno powiedzieć, nie próbując zobaczyć, jak to jest. –

0

Prawdopodobnie można utworzyć prostokąt tam, gdzie chcesz i uczynić jego fragmenty przezroczystym. Nie wiem jednak, jak przekazywać zdarzenia interfejsu użytkownika do działania pod klawiaturą.

W każdym razie jest softkeyboard sample, który prawdopodobnie będzie dość pomocny.

Jak widzę, istnieją dwa sposoby radzenia sobie z UI Thing. - Przenieś wydarzenia do podstawowej działalności, gdy "powinny przejść" ... Ponieważ Twoja softkeyboard może mieć swój własny proces, może to być trochę cierniste. - Ustaw klawiaturę na więcej niż jednym prostokącie, tak aby zdarzenia interfejsu użytkownika przechodziły przez Naturalnie. Nie jestem pewien, czy to nawet możliwe. Wciąż jestem całkiem nowy w rozwoju Androida.

+0

Moje zrozumienie polega na tym, że Działania są pełnoekranowe, a klawiatura i kilka innych podobnych rzeczy to coś innego niż Działania. Te "elses" są zaprojektowane tak, aby działały na podstawie działań, tak aby obszar, który nie zasłaniały, był użyteczny. –

+0

JEDNAK- czy te "coś innego niż czynności" muszą być prostokątem u dołu ekranu? Ponieważ zauważysz, gdy pojawi się typowa klawiatura programowa, przesuwa ona pola wprowadzania tekstu w górę, tak aby były widoczne w górnej połowie ekranu, który nie jest pokryty przez klawiaturę. Jeśli nie chcę, aby moje części klawiatury pojawiały się u dołu, w jaki sposób działa ta interakcja z bazowymi polami wejściowymi? Czy twórcy Androida mają założenia dotyczące kształtu i położenia klawiatury, które sprawiają, że inny niż domyślny kształt i rozmieszczenie są niepraktyczne/niemożliwe? –

Powiązane problemy