2016-03-10 2 views
0

У меня есть приложение для Android-андроида, которое использует EditText. Когда пользователи начнут вводить текст редактирования, я хочу, чтобы у них была возможность выйти из клавиатуры с помощью кнопки «Готово» или перейти к следующей строке с помощью кнопки «Возврат». Я не могу найти способ заставить клавиатуру включать как готовые, так и обратные кнопки. Если есть способ сделать это, это будет здорово.Как использовать оба варианта «Возврат» и «Готово» в Android-клавиатуре

Я знаю, что одним из способов сделать это может быть добавление верхней границы клавиатуры с помощью кнопки «Готово». Я также исследовал это, и я не могу понять, как сделать верхнюю границу, когда клавиатура становится видимой. Если это лучший способ сделать это, я хотел бы знать, как это сделать. Мне удалось сделать границы уже на экране с изменением размера с помощью клавиатуры с помощью adjustResize, но я хочу, чтобы граница существовала только в том случае, если клавиатура видна. Вот где я застрял.

Вот мои взгляды:

<?xml version="1.0" encoding="utf-8"?> 

<!-- 
The main EditText that covers the entire activity. 
It is attached to the LinedEditor class which 
gives it the "notepad" look. 
--> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent"> 

    <view 
     class = "com.patrickslagle.notepad.NewNote$LinedEditor" 
     android:id="@+id/note" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@color/yellow" 
     android:scrollbars="vertical" 
     android:fadingEdge="vertical" 
     android:gravity="top" 
     android:textSize="22sp" 
     android:textColor="@color/black" 
     android:paddingLeft="60dp" 
     android:paddingStart="60dp" 
     android:paddingTop= "25dp" 
     android:textCursorDrawable="@drawable/cursor" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 

    <include layout="@layout/bottom_border" 
     android:layout_width="match_parent" 
     android:layout_height="44dp" 
     android:id="@+id/bottom_border" 
     android:layout_alignBottom="@+id/note" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

</RelativeLayout> 

И моя текущая нижняя граница:

<!-- 
The bottom menu bar where the user chooses actions. 
--> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/bottom_border" 
    android:layout_width="match_parent" 
    android:layout_height="30dp" 
    android:orientation="horizontal" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:background="@color/yellow" 
    android:layout_marginLeft="0dp" 
    android:layout_marginRight="0dp" 
    android:layout_marginBottom="0dp"> 

     <ImageButton 
      android:contentDescription="@string/delete_button" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:id="@+id/delete" 
      android:src="@drawable/ic_delete_24dp" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/bullets" 
      android:layout_toEndOf="@id/bullets" 
      android:padding="7dp" 
      android:layout_margin="0dp" 
      android:background="@color/yellow" /> 

     <ImageButton 
      android:contentDescription="@string/save_button" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:id="@+id/save" 
      android:src="@drawable/ic_save_24dp" 
      android:padding="7dp" 
      android:layout_alignParentTop="true" 
      android:layout_toLeftOf="@+id/mail" 
      android:layout_toStartOf="@+id/mail" 
      android:background="@color/yellow" /> 

     <ImageButton 
      android:contentDescription="@string/menu_desc" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:id="@+id/menu" 
      android:src="@drawable/ic_menu_24dp" 
      android:padding="7dp" 
      android:layout_margin="0dp" 
      android:layout_alignParentTop="true" 
      android:layout_toLeftOf="@+id/save" 
      android:layout_toStartOf="@+id/save" 
      android:background="@color/yellow" /> 

     <ImageButton 
      android:contentDescription="@string/bullet" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:id="@+id/bullets" 
      android:src="@drawable/ic_format_list_bulleted_24dp" 
      android:padding="7dp" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/mail" 
      android:layout_toEndOf="@+id/mail" 
      android:background="@color/yellow" /> 

     <ImageButton 
      android:contentDescription="@string/mail_symbol" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:id="@+id/mail" 
      android:src="@drawable/ic_email_24dp" 
      android:padding="7dp" 
      android:layout_centerHorizontal="true" 
      android:background="@color/yellow" /> 

     <ImageButton 
      android:contentDescription="@string/clear" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:id="@+id/clear_note" 
      android:src="@drawable/ic_clear_24dp" 
      android:padding="7dp" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:background="@color/yellow" /> 

</RelativeLayout> 

Вот скриншот моего приложения, если это поможет:

Notepad Screenshot

+0

Вы также можете скрыть клавиатуру, когда пользователь прикасается к клавиатуре, а не нажав кнопку. –

ответ

0

Согласно Google desig n направляющих, например. http://developer.android.com/design/patterns/navigation.html, вам не нужно расширение клавиатуры:

  • Задний ключ на устройстве (твердого или мягкого) просто пусть клавиатура уйти.
  • Если вам нужно другое действие, например «сохранить изменения», вы должны поместить кнопку действия в верхней части экрана. Это также можно щелкнуть, пока клавиатура все еще открыта, поэтому дополнительный щелчок не требуется.

В соответствии с правилами проектирования приложение станет проще в использовании, так как оно будет вести себя аналогично другим известным приложениям. Напротив, приложение, которое создает собственную раскладку клавиатуры, может запутать пользователей.

+0

Спасибо. Очень полезно. –

Смежные вопросы