導航:首頁 > 操作系統 > android布局輸入框

android布局輸入框

發布時間:2023-01-24 08:33:06

android 鍵盤將布局頂上去

效果圖:

布局文件:

添加 android:fitsSystemWindows="true"

注冊清單:

整個布局都頂上去

AndroidManifest.xml 添加 android:windowSoftInputMode="adjustResize|stateHidden"

只把輸入框頂上去

AndroidManifest.xml 添加 android:windowSoftInputMode="stateHidden|adjustPan"

㈡ Android 點擊輸入框彈出鍵盤,布局隨鍵盤往上移動

一、效果圖:

二、Code:

/**

*  1、獲取main在窗體的可視區域

*  2、獲取main在窗體的不可視區域高度

*  3、判斷不可視區域高度,之前根據經驗值,在有些手機上有點不大准,現改成屏幕整體高度的1/3

*      1、大於屏幕整體高度的1/3:鍵盤顯示  獲取Scroll的窗體坐標

*                          算出main需要滾動的高度,使scroll顯示。

*      2、小於屏幕整體高度的1/3:鍵盤隱藏

*

* @param main 根布局 

* @param scroll 需要顯示的最下方View

*/

public static void addLayoutListener(final View main, final View scroll) {

    main.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

        @Override

        public void onGlobalLayout() {

            Rect rect = new Rect();

            main.getWindowVisibleDisplayFrame(rect);

            int screenHeight = main.getRootView().getHeight();

            int mainInvisibleHeight = main.getRootView().getHeight() - rect.bottom;

            if (mainInvisibleHeight > screenHeight / 4) {

                int[] location = new int[2];

                scroll.getLocationInWindow(location);

                int srollHeight = (location[1] + scroll.getHeight()) - rect.bottom;

                main.scrollTo(0, srollHeight);

            } else {

                main.scrollTo(0, 0);

}

}

});

}

三、調用方式:

在Activity的onCreate()中調用,

僅此記錄。

㈢ android布局問題我想實現圖上的效果,是一個按鈕+一個輸入框求大神指導

這個問題很簡單!1.最外面使用一個linearLayout背景設置為那個橘黃色的圖片。
2.你那個按鈕也可以採用背景圖片(imgeButton、或者textView什麼都可以)
3.輸入框採用EditText

㈣ 安卓布局 一個輸入框我想向讓他右移一點距離不貼著邊加 用的是linerlayout 怎麼弄

EditText布局屬性中設置:android:layout_marginLeft="20dp"

㈤ Android 輸入法對話框的布局

顯然不行 除非你自己寫 輸入法是一個應用 布局是他們自己寫的 只能是按照手機方向來顯示 查看原帖>>

㈥ Android WebView載入頁面的輸入框被軟鍵盤遮擋的問題

當實現沉浸式狀態欄時遇到軟體盤遮擋WebView頁面的輸入框的問題,這是實現方式有問題,應該檢查你的實現方式。

1)載入WebView的Activty不能設置為全屏模式,即Theme.NoTitleBar.Fullscreen,可以使用Theme.Holo.Light.NoActionBar

2)沉浸式狀態欄的實現方式,在Activity的根布局裡加兩個屬性:

android:clipToPadding="true" 設置你的繪制區域在padding裡面

android:fitsSystemWindows="true" 調整view的padding屬性為系統窗口 留出空間

在Activity的onCreate方法裡面設置標題欄為透明,即:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_ST ATUS);

3)Activity裡面不能設置android:windowSoftInputMode的屬性,使用默認的屬性即可

以上3步即可實現沉浸式狀態欄並且能保證你的WebView載入的HTML頁面的輸入框不被軟鍵盤遮擋。



0



0

上一篇 Android Studio在SVN上創建分支

下一篇 Android Converty問題解決方案

相關文章推薦

• android中webview載入html輸入框不能輸入內容問題記錄

• 如何解決Android軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• android popupwindow 中輸入框被軟鍵盤彈出擋住問題解決

• ios解決軟鍵盤遮擋輸入框問題

• Android軟鍵盤遮擋輸入框解決方法

參考知識庫

Android知識庫

34080 關注 | 2937 收錄

猜你在找

Android中的五大布局

零基礎學軟體之HTML語言

【Android APP開發】Android高級商業布局快速實現

html5的app開發

Android前沿技術—《軟體框架搭建》

Android移植基礎

html系統學習篇

零基礎學習HTML5—html+css基礎

Android開發之初窺門徑

Android之數據存儲

關閉

㈦ Android dialog 遮住輸入框的解決思路

在工作中經常會遇到彈出的dialog有輸入框的情況,屏幕大了還好,屏幕小了之後就特別容易出現輸入框被軟鍵盤遮住的情況,下面就是我在實際想中中遇到的

從上圖可以看出輸入框已經看不到了,遇到這種情況的第一個思路都是在dialog的style中添加

<item name="android:windowSoftInputMode">adjustPan</item>,我也試了下基本上沒用。然後換了個思路,既然軟鍵盤彈出來了,為什麼不能讓dialog向上移動同樣的距離呢。思路有了,下面就是把他實現了。

首先就是要計算軟鍵盤的高度,由於google並沒有給出具體的方法來計算軟鍵盤的高度,這時候我們就只能根據布局的高度變化來計算了。首先需要計算出屏幕的bottom坐標,然後監控布局的變動判斷變動後的bottom和初始的bottom的差值,一般肉眼觀察軟鍵盤的高度差不多是屏幕高度的1/3,所以就假設bottom往上移動了屏幕的1/3的距離就認為軟體盤彈出來了,當然也可以根據其他值來判斷,下面貼出具體方法:

/**

* activity中判斷軟鍵盤是否顯示

* @param activity

* */

fun isKeyboardShowing(activity: Activity): Boolean {

val screenHeight = activity.window!!.decorView.height.toDouble()

//獲取view的可見區域

    val rect = Rect()

activity.window!!.decorView.getWindowVisibleDisplayFrame(rect)

return (2.0 /3.0) * screenHeight > rect.bottom.toDouble()

}

接下來我們來計算出軟體盤的高度,經過我在多個測試機上實驗發現初始時bottom就是屏幕的高度,下面是計算鍵盤高度的具體方法

/**

* activity中計算軟鍵盤的高度

* @param activity

* */

fun getKeyboardHeight(activity: Activity): Int {

val displayMetrics = DisplayMetrics()

activity.windowManager.defaultDisplay.getMetrics(displayMetrics)

val screenHeight = displayMetrics.heightPixels

    val rect = Rect()

activity.window!!.decorView.getWindowVisibleDisplayFrame(rect)

return screenHeight - rect.bottom

}

有了高度之後一切就好辦了我們只需要在軟鍵盤彈出來的時候把dialog往上移動就行,在移動方式上我選擇了設置LayoutParams的方式,開始時想設置底部margin的,結果發現沒作用,dialog一點不移動,最後只好設置上邊的margin為負值

if (SoftUtils.isKeyboardShowing(context)) {

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin ==0) {

lp.topMargin = -SoftUtils.getKeyboardHeight(context)

if (mRootView.height

lp.height =mRootOriginHeight

        }

mRootView.layoutParams = lp

}

}else {

if (mRootOriginHeight ==0) {

mRootOriginHeight =mRootView.height

    }

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin <0) {

lp.topMargin =0

        mRootView.layoutParams = lp

}

}

其中mRootView是dialog最外層的布局。在這裡面比較重要的一點監測方式,在哪裡監測軟鍵盤的彈出動作,在activity中可以監測onWindowFocusChanged方法,但是如果封裝了dialog的話,dialog中的onWindowFocusChanged並不會起作用,在這里我選擇了使用ViewTreeObserver和監聽,通過給mRootView的ViewTreeObserver添加addOnGlobalLayoutListener來實時判斷,下面是完整的方法

private fun setSpace() {

val treeObserver =mRootView.viewTreeObserver

    treeObserver.addOnGlobalLayoutListener{

        if (SoftUtils.isKeyboardShowing(context)) {

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin ==0) {

lp.topMargin = -SoftUtils.getKeyboardHeight(context)

if (mRootView.height

lp.height =mRootOriginHeight

                }

mRootView.layoutParams = lp

}

}else {

if (mRootOriginHeight ==0) {

mRootOriginHeight =mRootView.height

            }

val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams

if (lp.topMargin <0) {

lp.topMargin =0

                mRootView.layoutParams = lp

}

}

}

}

在這里當軟鍵盤彈出的時候重新設置了下dialog的高度,因為有時候軟鍵盤的彈出會使dialog的高度壓縮,所以彈出的時候重新設置下就好了。

這就是我的一個解決思路,當然完全按這個寫的話當輸入框較多時也可能出問題,最上層的輸入框跑屏幕之外去了,這種情況下我們只需要根據輸入框的位置動態的計算dialog需要往上移動的距離就行,不要一直設置為計算出來的軟鍵盤的高度。

下圖是解決之後的UI

㈧ 安卓給輸入框設置默認值

通過WebView顯示一個網頁,並給輸入框設置默認值。
在有EditText的布局中,可以對固定文本設置默認聚焦,這樣實現默認情況下輸入框不聚焦,此外,若要實現點擊輸入框外部關閉軟鍵盤並且讓輸入框失去焦點,則可重寫dispatchTouchEvent方法,捕捉到輸入框獲取到焦點後再進行相應操作。
安卓系統默認參數的修改通常在新項目開始之初,咱們須要針對客戶需求進行各類系統默認屬性的配置,一般這些屬性都是經過build.prop、settings.db、default.xml、一些功能package下的config.xml等來進行初始化配置的。

㈨ android 系統輸入法如何可以使上面帶有朋友圈一樣的輸入框

這個簡單,你在界面用ScrollView布局,
裡面用一個RelativeLayout鋪滿父窗口,RelativeLayout用布局,居下,這樣,當獲取焦點的時候,就會自動上去了,
還需要在manifest文件中,對activity設置android:windowSoftInputMode="stateHidden|adjustResize"

閱讀全文

與android布局輸入框相關的資料

熱點內容
java多類繼承 瀏覽:157
怎麼用多玩我的世界連接伺服器地址 瀏覽:481
為什麼華為手機比安卓流暢 瀏覽:175
javamap多線程 瀏覽:226
卡西歐app怎麼改時間 瀏覽:841
jquery壓縮圖片 瀏覽:970
用紙筒做解壓東西 瀏覽:236
神奇寶貝伺服器如何tp 瀏覽:242
雲伺服器支持退貨嗎 瀏覽:277
貸款等額本息演算法 瀏覽:188
根伺服器地址配置 瀏覽:499
單片機是軟體還是硬體 瀏覽:624
vivo手機怎麼看編譯編號 瀏覽:320
塑鋼扣條演算法 瀏覽:301
linux應用程序安裝 瀏覽:414
linux怎麼查找命令 瀏覽:431
安卓12原生和非原生是什麼意思 瀏覽:277
四川廣電怎麼安裝app 瀏覽:6
大話西遊伺服器是什麼意思 瀏覽:775
誇克解壓壓縮文件 瀏覽:915