1. 程式人生 > >Android ListView/recyclerView條目中EditText容易失去焦點的問題和取出橫向時上下滾動有陰影

Android ListView/recyclerView條目中EditText容易失去焦點的問題和取出橫向時上下滾動有陰影

使用情況:

列表中有EditText,使用者在點選輸入框的時候,軟鍵盤彈出,這時候EditText會失去焦點的問題。

使用方法:

 網上不少是說在getView()方法裡做攔截處理,在獲取的時候付給EditText焦點。方法行不行不知道,但是挺複雜的。

簡單方法如下:

在使用這個listview列表的Activity的清單檔案宣告的地方加上一句程式碼:

android:windowSoftInputMode="adjustPan"

具體位置:


至於為什麼:

adjustPan:當前視窗的內容將自動移動,以便當前焦點從不被鍵盤覆蓋

第二個問題: 取出recyclerView橫向展示時上下滑動有陰影的處理:

自定義管理者:

public class TaoLinear extends GridLayoutManager {
    private boolean isScrollEnabled = true;
    public TaoLinear(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
}

    public TaoLinear(Context context, int 
spanCount) { super(context, spanCount); } public TaoLinear(Context context, int spanCount, int orientation, boolean reverseLayout) { super(context, spanCount, orientation, reverseLayout); } public void setScrollEnabled(boolean flag) { this.isScrollEnabled = flag; } @Override
public boolean canScrollVertically() { return isScrollEnabled && super.canScrollVertically(); } }

TaoLinear taoLinear = new TaoLinear(this,4);
taoLinear.setScrollEnabled(false);
issuedBinding.recyclerQuestion.setLayoutManager(taoLinear);

就OK了。