2013-07-09 37 views
4

我遇到以下问题: 在一个ScrollView我有一个TableLayout有很多EditTextsSpinnersRadioGroups等。活动开始时,第一个EditText获得焦点。如果我向下滚动到Spinner并选择一个项目,它会自动滚动回到重点关注的EditText安卓:微调没有得到正确聚焦

我已经尝试使用以下命令:

((Spinner) findViewById(R.id.attributes_status)).setFocusable(true); 
((Spinner) findViewById(R.id.attributes_status)).setFocusableInTouchMode(true); 

R.id.attributes_status是微调。这解决了自动滚动问题,但现在我必须点击两次微调(1.设置焦点,2.显示项目列表)!

有谁知道如何正确设置焦点到Spinner?或者如何在不改变Spinner行为的情况下抑制自动滚动问题?

提前感谢和问候,

塞巴斯蒂安

回答

0

我遇到了同样的问题。我使用setFocusableInTouchMode(true)使旋转工具可以聚焦,但解决了这个问题,但这会导致其他问题。你可以看到我的解决方案here

0

由于这解决了您的问题,但我有这个问题的最简单的解决方案,它解决了我的问题。所有的 首先要躲你可以使用这个键盘:

this.getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

然后使用此代码:

spinner.setOnFocusChangeListener(new View.OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) 
       YourActivity.this.spinner.performClick(); 
     } 

    });