안드로이드:소프트 키보드 위에 버튼을 누르는 방법
소프트 키보드와 함께 올리고 싶은 "저장" 버튼이 있습니다.따라서 사용자가 내 레이아웃에서 텍스트 편집을 클릭하면 버튼이 키보드 위에 있어야 합니다.이제 버튼은 키보드 아래에 숨겨져 있습니다.이걸 어떻게 하나요?
미리 감사드립니다!
키보드의 입력 모드를 다음과 같이 설정해야 합니다.adjustResize
. 매니페스트의 활동 속성에 다음 행을 추가할 수 있습니다.
android:windowSoftInputMode="adjustResize"
다음은 액티비티에 추가된 속성의 예입니다.
<activity
android:name=".activity.MyActivity"
android:windowSoftInputMode="adjustResize">
</activity>
In hep의 답변과 함께 상위 보기 그룹에 속성을 추가해야 합니다.
android:fitsSystemWindows="true"
원하는 대로 작업합니다. 즉, 매니페스트 파일에서 활동을 추가합니다.
android:windowSoftInputMode="adjustResize"
예를 들면.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:fitsSystemWindows="true" <!-- add this -->
android:orientation="vertical"
>
<EditText
android:id="@+id/et_assetview_comment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="80dp"
android:background="@color/white"
android:hint="Enter comments"
/>
<Button
android:id="@+id/btn_assetview_postcomment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="POST"
/>
</LinearLayout>
이렇게 레이아웃을 정렬하면 키보드 위에 버튼을 놓을 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button_next"
android:background="#0ff"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="250dp"
android:hint="Hint"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABC"
android:textSize="50sp"
/>
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/button_next"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:layout_margin="10dp"
android:text="Button Next"
/>
</RelativeLayout>
안드로이드 매니페스트에서
<application
...
>
<activity android:name=".YourActivity"
android:windowSoftInputMode="adjustResize"
>
</activity>
</application>
참고하세요, 대신에RelativeLayout
, 당신은 또한 다른것을 사용할 수 있습니다.ViewGroup
맘에 들다LinearLayout
무게를 두고CordinatorLayout
, ...
그래서 이것은 꽤 오래된 게시물이지만, 저는 제공된 답변에 어려움을 겪었습니다.avi와 inahep 둘 다 맞지만 정확히 어디에 있는지 보여드리겠습니다.android:windowSoftInputMode="adjustResize"
간다.
안드로이드 매니페스트에서
<activity android:name=".DataScreen" />
<activity android:name=".PauseScreen" />
<activity android:name=".RouteInfo"
android:windowSoftInputMode="adjustResize"> <!--This goes in the specific activity with the button -->
</activity>
가장 좋은 방법은 키 누르기를 숨기고 필요한 경우 키보드 위의 버튼을 누르는 것입니다.
android:windowSoftInputMode="adjustResize|stateHidden"
가점 상기 사항 중 다음을 포함하는 것"adjustResize"
활동이 전체 화면인 경우를 제외하고는 작동합니다.그건 제 경우에요.활동 코드가 전체 화면에 표시되지 않도록 확인합니다.
이 간단한 설정은 키보드로 전체 레이아웃을 스크롤합니다.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/recycler_view"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/button"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Button" />
</RelativeLayout>
주요 사항:
- 매니페스트에 추가된 건 없습니다
- 안드로이드가 필요에 따라 크기를 조정할 수 있도록 하려면 이미지가 "wrap_content"(고정된 크기가 아님)이어야 합니다.
- 위와 같이 모든 뷰를 링크해야 합니다.아래쪽 보기 layout_alignParentBottom="true", 위쪽 보기 layout_alignParentTop="true" 및 모든 중간 보기 layout_above="@id/view_below.
- layout_below="@id/view_위" 특성이 어떤 이유로 작동하지 않습니다.
AndroidX의 경우:
사용하다CoordinatorLayout
메인 부모 레이아웃 및 추가의 경우NestedScrollView
당신의 컨텐츠를 위해 그리고 당신의 레이아웃 또는 버튼을 자식에 추가합니다.CoordinatorLayout
소프트 키보드 위에 버튼을 누르다
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:isScrollContainer="true" >
.......
</androidx.core.widget.NestedScrollView>
<com.google.android.material.button.MaterialButton
android:id="@+id/send_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="@string/login" />
사진:
언급URL : https://stackoverflow.com/questions/15323758/android-how-to-push-button-above-soft-keyboard
'programing' 카테고리의 다른 글
Git 하위 모듈 푸시 (0) | 2023.10.07 |
---|---|
jQuery: 클릭 시 설정된 증분(픽셀 단위)을 스크롤 다운 페이지로 이동하시겠습니까? (0) | 2023.10.07 |
xpath를 깨는 xml 네임스페이스! (0) | 2023.10.07 |
기능을 재개하기 전에 자바스크립트 약속이 해결될 때까지 기다리는 방법? (0) | 2023.10.07 |
xmlrpc로 워드프레스에 html 콘텐츠를 게시하려면 어떻게 해야 합니까? (0) | 2023.10.07 |