2015-10-14 2 views
0

Я использую scrollview для прокрутки моего просмотра, когда открыта мягкая клавиатура. Но между клавишей и клавиатурой требуется большее пространство. Можем ли мы удалить это большое пространство.Удалите пространство между мягким кеем и кнопкой

Вот мой блок кода xml.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/widget32" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ScrollView android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <EditText 
      android:id="@+id/searchText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/searchBtn" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="30dp" 
      android:layout_marginRight="30dp" 
      android:layout_marginBottom="20dp" 
      android:hint="@string/search_hint" 
      android:inputType="number" 
      android:maxLength="10" /> 
     <Button 
      android:id="@+id/searchBtn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:layout_marginLeft="30dp" 
      android:layout_marginRight="30dp" 
      android:background="#339933" 
      android:padding="20dp" 
      android:text="@string/search_button_text" 
      android:textColor="#FFFFFF" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 
    </RelativeLayout> 
</ScrollView> 
</RelativeLayout> 

enter image description here

enter image description here

ответ

1

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

Вы должны иметь кнопку мыши в пределах расположения корневой, который должен иметь кнопку щелчка выровненную вниз, либо с linearlayouts действием силы тяжести или relativelayouts layout_alignParentBottom

Поэтому в основном вы определяете раскладку следующим образом:

<RelativeLayout> 

<Button 
android:layout_alignParentBottom="true"> 
</Button> 

</RelativeLayout> 

И та-да! кнопка находится прямо на клавиатуре программного обеспечения!

Реальная проблема ..

Как выясняется, в комментариях реальную проблему здесь, чтобы выровнять кнопку на клавиатуре только тогда, когда это видно, что просто может быть достигнуто за счет наличия двух invidual кнопок что visibilitys переключаются на основе состояния клавиатуры

Итак, сначала мы определяем расположение, которое имеет две кнопки, одна для состояния программного обеспечения клавиатуры и один для «обычного» состояния

<RelativeLayout> 

<ScrollView> 
    <LinearLayout> 
     <!-- ...... --> 


     <Button 
     android:id="@+id/regular_button"> 
     </Button> 

    </LinearLayout> 
</ScrollView> 

<Button 
android:id="@+id/keyboard_aligned_button" 
android:layout_alignParentBottom="true"> 
</Button> 

</RelativeLayout> 

, и теперь мы просто привязываем состояние клавиатуры к видимости кнопок, поэтому нам нужно каким-то образом отслеживать состояние клавиатуры, что объясняется в many places

и когда клавиатура установлена ​​на видимость, мы: setVisibility от обычной кнопки - GONE, а клавиша с выравниванием по клавиатуре - до VISIBLE.

После клавиатуры пошла заметность является

на противоположный
+0

А что о первоначальном состоянии, как это было в середине макета до появления клавиатуры? По моему мнению, это не ответ на требуемый или заданный макет. –

+0

Если вы хотите, чтобы он был на клавиатуре программного обеспечения, он должен быть самым нижним элементом таким образом, чтобы он был выровнен по низу. Если вы хотите сохранить начальные условия, если клавиатура программного обеспечения не отображается, вы можете просто добавить еще одну кнопку, которая будет видна только тогда, когда клавиатура программного обеспечения присутствует, и управлять ее видимостью –

+0

, так что это не ответ в соответствии с данным расположением макета. –

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