键盘弹出或隐藏时显示和删除TextView / Image

时间:2015-09-16 05:57:04

标签: java android android-layout

我使用这个代码,当我弹出一个键盘时,我在这里使文本视图消失了。但是当隐藏键盘时,我希望textview再次回到正常位置。此外,当textview消失时,它下面的edittext将会上升。然后在隐藏键盘时返回其正常位置。我怎样才能做到这一点?谢谢!

final View activityRootView = findViewById(R.id.LinearLayout1);
    activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
            if (heightDiff > 100)  // if more than 100 pixels, its probably a keyboard...
                findViewById(R.id.titleTextView).setVisibility(View.GONE);

         }
    });

2 个答案:

答案 0 :(得分:0)

if (heightDiff > 100)  {
                findViewById(R.id.titleTextView).setVisibility(View.GONE);
      }else{
            findViewById(R.id.titleTextView).setVisibility(View.VISIBLE);
      }

应该这样做。

答案 1 :(得分:0)

很简单 - 如果键盘显示超过100,键盘隐藏时应该小于100:

if (heightDiff > 100){  // if more than 100 pixels, its probably a keyboard...

    findViewById(R.id.titleTextView).setVisibility(View.GONE);

}else{

    findViewById(R.id.titleTextView).setVisibility(View.VISIBLE);

}

修改

试试这个:

if (heightDiff > 200){  // if more than 100 pixels, its probably a keyboard...

     findViewById(R.id.titleTextView).setVisibility(View.GONE);

}else if(heightDiff < 200){

     findViewById(R.id.titleTextView).setVisibility(View.VISIBLE);

}