请求焦点在 ScrollView Android 中不起作用



我有一个包含按钮表的scroolView,我试图请求焦点到其中一个按钮,但没有成功下面是代码(为了避免浮动,删除了一些行)

    private void reDraw()
{
    ll = new LinearLayout(this);
    ll.setOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    ll.setGravity(Gravity.FILL);
    ll.setBackgroundResource(R.drawable.modern_background);
    ll.setPadding(20, 20, 20, 20);

    sv = new ScrollView(this);
    sv.setPadding(0, 20, 0, 0);
    tl = new TableLayout(this);
    tl.setGravity(Gravity.FILL);
    tl.setStretchAllColumns(true);
    get_start_and_end_of_month(Start.globalDate);
    day = 1;
    int dayInWeek = startOfTheMonth.get(java.util.Calendar.DAY_OF_WEEK);
    String temp;
    tr = new TableRow(this);
    tr.setGravity(Gravity.FILL_HORIZONTAL); 
    for(int k = 0; k < 7; k++)
    {
        b = new Button(this);
        b.setGravity(Gravity.CENTER);
        b.setBackgroundResource(R.drawable.widget_cell_day);
        b.setText(Start.hebLayout ? daysHebrew[k] : daysEnglish[k]);
        tr.addView(b);
    }
    tl.addView(tr);
    for(int i = 0; i < 5; i++)
    {
        tr = new TableRow(this);
        tr.setGravity(i == 0 ? Gravity.RIGHT : Gravity.LEFT);
        for(int j = 1; j < 8; j++)
        {                               
            if(!(i == 0 && j < dayInWeek))
            {               
                db = new DateButton(this, startOfTheMonth.getTime());
                db.setGravity(Gravity.CENTER);
                if(new HdateNew(Start.globalDate).get_hd_day() == day)
                    db.setFocusableInTouchMode(true);
                db.setId(day);
                tr.addView(db);
                if(day == new HdateNew(endOfTheMonth.getTime()).get_hd_day())
                    break;
                day++;
                startOfTheMonth.add(java.util.Calendar.DATE, 1);
            }
        }
        tl.addView(tr);
    }
    sv.addView(tl);
    ll.addView(sv);
    setContentView(ll);
    db = (DateButton)findViewById(new HdateNew(Start.globalDate).get_hd_day());
    db.setFocusable(true);
    db.requestFocus();
}

现在你可以看到我将按钮设置为可对焦但它对我不起作用

//尝试设置内容视图@ last

 db = (DateButton)findViewById(new HdateNew(Start.globalDate).get_hd_day());
    db.setFocusable(true);
    db.requestFocus();
setContentView(ll);

最新更新