2015-11-02 96 views
0

我更新了我的手机和我以前工作过的代码在5.02(新版本,我只是更新手机)无法正常工作。有没有一种方法可以与所有版本兼容?这里是我的代码,不再工作(它说它不可见时):如何检测Android键盘出现/消失的时间? (5.02)

final View activityRootView = findViewById(R.id.mainRelativeLayout); 
     activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() 
      { 
       int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight(); 

       if (heightDiff > 100) 
       { 
        System.out.println("test: keyboard visible"); 

        RelativeLayout.LayoutParams lp =(RelativeLayout.LayoutParams)bottomSelectionLayout.getLayoutParams(); 
        lp.height = 0; 
        bottomSelectionLayout.setLayoutParams(lp); 

        RelativeLayout.LayoutParams lp2 =(RelativeLayout.LayoutParams)bottomSeperatorLine.getLayoutParams(); 
        lp2.height = 0; 
        bottomSeperatorLine.setLayoutParams(lp2); 

        bottomSelectionLayout.setVisibility(View.INVISIBLE); 
        bottomSeperatorLine.setVisibility(View.INVISIBLE); 
       } 

       else 
       { 
        System.out.println("test: keyboard invisible"); 

        RelativeLayout.LayoutParams lp =(RelativeLayout.LayoutParams)bottomSelectionLayout.getLayoutParams(); 
        lp.height = (int) bottomSelectionLayoutStartingHeight; 
        bottomSelectionLayout.setLayoutParams(lp); 

        RelativeLayout.LayoutParams lp2 =(RelativeLayout.LayoutParams)bottomSeperatorLine.getLayoutParams(); 
        lp2.height = (int)bottomSeperatorLineStartingHeight; 
        bottomSeperatorLine.setLayoutParams(lp2); 

        bottomSelectionLayout.setVisibility(View.VISIBLE); 
        bottomSeperatorLine.setVisibility(View.VISIBLE); 
       } 
      } 
     }); 

回答

0

您可以将以下行添加到您的布局XML?这将有助于支持android:windowSoftInputMode="adjustResize",您已将其添加到版本21和更高版本的AndroidManifest.xml中

android:fitsSystemWindows="true" 
+0

问题是键盘未正确检测到。当它不在时它被检测为可见。无论我尝试将你的代码添加到我的清单并且它不能解决问题:( – JessThePest

+0

好吧,这里有更多的信息可以帮助你。当键盘可见时,heightDiff是146.当键盘不可见时,heightDiff是670 。 – JessThePest