在平板电脑上查看返回null但在手机上正常工作

时间:2015-08-04 09:40:25

标签: java android tablet

我现在有以下内容;

setupHideKeyboard( findViewById( R.id.login_layout ), this );
public void setupHideKeyboard( final View view, final Activity activity ) {

    if ( !( view instanceof EditText ) ) {

        view.setOnTouchListener( new View.OnTouchListener() {
        // crashes on the above line

            public boolean onTouch( View v, MotionEvent event ) {

                hideSoftKeyboard( activity );
                view.setFocusableInTouchMode( true );
                view.requestFocus();
                return false;
            }

        });
    }

    if ( view instanceof ViewGroup ) {

        for ( int childView = 0; childView < ( ( ViewGroup) view ).getChildCount(); childView++ ) {

            View innerView = ( ( ViewGroup ) view ).getChildAt( childView );
            setupHideKeyboard( innerView, activity );
        }
    }

用于设置触摸侦听器以在未按下edittext时隐藏键盘,这在我的HTC One M7上运行良好,但在我的Samsung Galaxy Tab S 10.5上崩溃。

视图由于某种原因在选项卡上为空,但在m7上很好。 有什么明显的想法吗?

就好像它找不到R.id.login_layout大的xml与小的xml有不同的名字?

1 个答案:

答案 0 :(得分:0)

在布局和layout-large / layout-xlarge文件夹中可能存在相同的布局文件。但是login_layout仅在布局文件夹文件中定义。因为平板电脑会从layout-large / layout-xlarge中获取xml,所以通胀没有问题,但它无法从该布局文件中获取login_layout视图。因此,你正在崩溃。