当ListView项具有焦点时,将布局设置为可见

时间:2019-05-16 13:24:28

标签: android android-listview focus

我有一个 ListView ,并希望将焦点设置在所选项目上。 ListView 每行包含3个 TextView 。我希望两个 LinearLayout 在选择一个项目时可见。

我已经尝试过:

mListView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus) {
                    ((LinearLayout) findViewById(R.id.ll_btn_manipulation_lv)).setVisibility(View.VISIBLE);
                    ((LinearLayout) findViewById(R.id.ll_tv_username)).setVisibility(View.VISIBLE);
                }
            }
        });

但是它不起作用。因此,我尝试在 setOnFocusChangeListener 之前添加以下代码:

mListView.setItemsCanFocus(true);

它也不起作用。

所以我试图做到这一点:(它也不起作用)

 for(int i = 0 ; i < mListView.getChildCount() ; ++i) {
            TextView tv1 = (TextView) mListView.findViewById(R.id.textView1);
            TextView tv2 = (TextView) mListView.findViewById(R.id.textView2);
            TextView tv3 = (TextView) mListView.findViewById(R.id.textView3);

            View.OnFocusChangeListener ofcl = new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if(hasFocus) {
                        ((LinearLayout) findViewById(R.id.ll_btn_manipulation_lv)).setVisibility(View.VISIBLE);
                        ((LinearLayout) findViewById(R.id.ll_tv_username)).setVisibility(View.VISIBLE);
                    }
                }
            };

            tv1.setOnFocusChangeListener(ofcl);
            tv2.setOnFocusChangeListener(ofcl);
            tv3.setOnFocusChangeListener(ofcl);
        }

所以我的目的是在单击一个项目后使两个 LinearLayout 可见。

你有什么主意吗?谢谢

0 个答案:

没有答案