android在view.requestFocus(0)返回false的解决办法

我们有时候想让listview的第一行自动获取到焦点,我们就会使用view.requestFocus(0)来操作,而有时候并不生效,debug后显示rerurn为false。

  这是因为我们获取焦点太早,listview控件还为加载完毕。可以尝试一下方法解决:

 

listview.post(new Runnable(){

    @Override 

    public void run(){

      view.requestFocus(0);

    }

});

 

设置是否获得焦点。若有requestFocus()被调用时,后者优先处理。注意在表单中想设置某一个如EditText获取焦点,光设置这个是不行的,需要将这个EditText前面的focusable都设置为false才行。在Touch模式下获取焦点需要设置focusableInTouchMode为true。

 

标签用于指定屏幕内的焦点View

例如我们点击tab键或enter键焦点自动进入下一个输入框
用法: 将标签置于Views标签内部

            <EditText id="@+id/text"
                         android:layout_width="fill_parent"
                         android:layout_height="wrap_content"
                         android:layout_weight="0"
                         android:paddingBottom="4">
                   <requestFocus />
            </EditText>

posted @ 2015-05-26 15:20  guoliuya  阅读(848)  评论(0编辑  收藏  举报