亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android 彈出軟鍵盤所遇到的坑及解決方法

 更新時(shí)間:2017年01月24日 16:21:42   作者:struggle323  
這篇文章主要介紹了Android 彈出軟鍵盤所遇到的坑及解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下

demo下載

重要代碼:

//1、此layout作為最外層的layout;
//2、設(shè)置需要調(diào)整的view: setAdjustView(View view);
//3、如果需要控制輸入框的顯示與隱藏,可以實(shí)現(xiàn)OnInputViewVisibleListener接口;
public class SoftInputAdjustLayout extends RelativeLayout {
  private static final String TAG = SoftInputAdjustLayout.class.getSimpleName();
  private View adjustView;
  public SoftInputAdjustLayout(Context context) {
    this(context, null);
  }
  public SoftInputAdjustLayout(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
  }
  public SoftInputAdjustLayout(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    this.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
      @Override
      public void onGlobalLayout() {
        try {
          Rect r = new Rect();
          getWindowVisibleDisplayFrame(r);
          int heightDiff = getRootView().getHeight() - (r.bottom - r.top);
          if (heightDiff > 100) {
            if (onInputViewVisibleListener != null) {
              onInputViewVisibleListener.onShowInputView();
            }
          } else {
            if (onInputViewVisibleListener != null) {
              onInputViewVisibleListener.onHideInputView();
            }
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }
  /**
   * 需要調(diào)整的view
   *
   * @param adjustView
   */
  public void setAdjustView(View adjustView) {
    this.adjustView = adjustView;
  }
  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    if (adjustView != null) {
      Rect rect = new Rect();
      getWindowVisibleDisplayFrame(rect);
      int totalHeight = getHeight();
      int nowHeight = rect.bottom - rect.top;
      int keyBoardHeight = totalHeight - nowHeight;
      if (keyBoardHeight > totalHeight / 4) {
        super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(totalHeight, MeasureSpec.EXACTLY));
        LayoutParams params = (LayoutParams) adjustView.getLayoutParams();
        params.bottomMargin = keyBoardHeight;
      } else {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        LayoutParams params = (LayoutParams) adjustView.getLayoutParams();
        params.bottomMargin = 0;
      }
    } else {
      super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
  }
  private OnInputViewVisibleListener onInputViewVisibleListener;
  public void setOnInputViewVisibleListener(OnInputViewVisibleListener listener) {
    onInputViewVisibleListener = listener;
  }
  public interface OnInputViewVisibleListener {
    void onShowInputView();
    void onHideInputView();
  }
}

備注:

全屏模式:

1、通過(guò)style或者setFlags(…)來(lái)設(shè)置全屏;

2、AndroidManifest.xml中activity設(shè)置:android:windowSoftInputMode=”adjustResize”;

3、此layout必須作為布局的最外層layout;

4、一定要在布局中添加一個(gè)view,如下:

 <!--此view用于獲取焦點(diǎn),當(dāng)軟件盤彈出時(shí),根據(jù)此view來(lái)彈出,而此view在最頂部,且大小為0,所以軟件盤彈出,不會(huì)把背景頂上去-->
  <View
    android:layout_width="0px"
    android:layout_height="0px"
    android:focusable="true" 
android:focusableInTouchMode="true" />

5、通過(guò)setAdjustView(View view)來(lái)設(shè)置需要調(diào)整的view;

6、在全屏模式下,輸入框開(kāi)始是未顯示的,直到彈出軟鍵盤,才會(huì)顯示輸入框。因?yàn)槿绻斎肟蛞婚_(kāi)始就顯示,那軟鍵盤就會(huì)根據(jù)輸入框來(lái)彈出,且輸入框在底部,那就可能造成把整個(gè)view頂上去。所以這時(shí)我們應(yīng)該實(shí)現(xiàn)OnInputViewVisibleListener這個(gè)接口來(lái)控制輸入框的顯示與隱藏。

非全屏模式

1、AndroidManifest.xml中activity設(shè)置:android:windowSoftInputMode=”adjustResize”;

2、此layout必須作為布局的最外層layout;

3、通過(guò)setAdjustView(View view)來(lái)設(shè)置需要調(diào)整的view;

4、如果需要控制輸入框的顯示與隱藏,就實(shí)現(xiàn)OnInputViewVisibleListener這個(gè)接口。

以上所述是小編給大家介紹的Android 彈出軟鍵盤所遇到的坑及解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android App的運(yùn)行環(huán)境及Android系統(tǒng)架構(gòu)概覽

    Android App的運(yùn)行環(huán)境及Android系統(tǒng)架構(gòu)概覽

    這篇文章主要介紹了Android App的運(yùn)行環(huán)境及Android系統(tǒng)架構(gòu)概覽,并對(duì)應(yīng)用程序進(jìn)程間隔離機(jī)制等知識(shí)點(diǎn)作了介紹,需要的朋友可以參考下
    2016-03-03
  • Android開(kāi)發(fā)中Dialog半透明背景消失

    Android開(kāi)發(fā)中Dialog半透明背景消失

    這篇文章主要介紹了Android開(kāi)發(fā)中Dialog半透明背景消失的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • Android實(shí)現(xiàn)圓形菜單懸浮窗

    Android實(shí)現(xiàn)圓形菜單懸浮窗

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圓形菜單懸浮窗,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android實(shí)現(xiàn)屏幕手寫簽名

    Android實(shí)現(xiàn)屏幕手寫簽名

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)屏幕手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Android HorizontalScrollView內(nèi)子控件橫向拖拽實(shí)例代碼

    Android HorizontalScrollView內(nèi)子控件橫向拖拽實(shí)例代碼

    本文主要介紹Android HorizontalScrollView的使用,這里給大家一個(gè)實(shí)例來(lái)展示HorizontalScrollView內(nèi)子控件橫向拖拽的效果實(shí)現(xiàn),有需要的小伙伴可以參考下
    2016-07-07
  • Android XUtils3框架的基本使用方法(二)

    Android XUtils3框架的基本使用方法(二)

    這篇文章主要介紹了Android XUtils3框架的基本使用方法(二)的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • Android教你如何發(fā)現(xiàn)APP卡頓的實(shí)現(xiàn)

    Android教你如何發(fā)現(xiàn)APP卡頓的實(shí)現(xiàn)

    這篇文章主要介紹了Android教你如何發(fā)現(xiàn)APP卡頓的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Android服務(wù)Service教程

    Android服務(wù)Service教程

    Android的服務(wù)是開(kāi)發(fā)Android應(yīng)用程序的重要組成部分。不同于活動(dòng)Activity,服務(wù)是在后臺(tái)運(yùn)行,服務(wù)沒(méi)有接口,生命周期也與活動(dòng)Activity非常不同。通過(guò)使用服務(wù)我們可以實(shí)現(xiàn)一些后臺(tái)操作,比如想從遠(yuǎn)程服務(wù)器加載一個(gè)網(wǎng)頁(yè)等,下面來(lái)看看詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-11-11
  • Android實(shí)現(xiàn)帶指示點(diǎn)的自動(dòng)輪播無(wú)限循環(huán)效果

    Android實(shí)現(xiàn)帶指示點(diǎn)的自動(dòng)輪播無(wú)限循環(huán)效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)帶指示點(diǎn)的自動(dòng)輪播無(wú)限循環(huán)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • android自定義進(jìn)度條移動(dòng)效果

    android自定義進(jìn)度條移動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了android自定義進(jìn)度條移動(dòng)效果,進(jìn)度數(shù)字隨進(jìn)度移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論