Android 軟鍵盤高度獲取
概述?
在Android開發(fā)中立美,有時候我們需要獲取軟鍵盤的高度,以便進行相應(yīng)的布局調(diào)整方灾。本文將介紹如何在Android中獲取軟鍵盤的高度建蹄。??
Activity 代碼
public class MainActivity extends AppCompatActivity {?
private View? rootView;
private LinearLayout rlView;
? ? ?@Override
? ? ? ? ?protected void onCreate(Bundle savedInstanceState) {
? ? ? ? ? ? ? ?super.onCreate(savedInstanceState);
? ? ? ? ? ? ? ?setContentView(R.layout.activity_main);
? ? ? ? ? ? ? ?rootView = findViewById(android.R.id.content);
? ? ? ? ? ? ? // 注冊鍵盤監(jiān)聽事件
? ? ? ? ? ? rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
? ? ? ? ? ? ? ? ?@Override
? ? ? ? ? ? ? ? ?public void onGlobalLayout() {
? ? ? ? ? ? ? ? ? ?//獲取軟鍵盤的高度信息
? ? ? ? ? ? ? ? ? ?int keyboardHeight = getKeyboardHeight();
? ? ? ? ? ? ? ? ? ?rlView.setPadding(0,0,0,keyboardHeight);
? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ?});
? ?}
//獲取軟鍵盤高度方法
private int getKeyboardHeight() {
? ? View rootView = getWindow().getDecorView().getRootView();
? ? ?Rect rect =new Rect();
? ? ?rootView.getWindowVisibleDisplayFrame(rect);
? ? ? int screenHeight = rootView.getHeight();
? ? ? int keyboardHeight = screenHeight - rect.bottom;
? ? ?return keyboardHeight;
? ?}
}
xml代碼需要已androidx.core.widget.NestedScrollView或者ScrollView包裹碌更。