Android:Spinner无法正确聚焦

时间:2013-07-09 20:10:45

标签: android

我遇到了以下问题: 在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行为的情况下抑制自动滚动问题?

提前致谢并致以最诚挚的问候,

塞巴斯蒂安

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我通过使用setFocusableInTouchMode(true)使微调器可聚焦来解决它,但这会导致其他问题。您可以看到我的解决方案here

答案 1 :(得分: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();
        }

    });