a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

android基礎教程之android的listview與edittext沖突解決方法

2020-04-11 11:53:50
字體:
來源:轉載
供稿:網友

最近遇到一個關于android軟鍵盤的問題。在ListView中每個Item中都有個EditText,在最后的幾個Item中,EditText第一次點擊界面還能向上彈出,正常顯示,

但第二次點擊時,軟件盤就把最后的幾個Item給正當住了。這樣很影響用戶體驗的。

其實解決的辦法只要想一下,我相信有經驗的開發人員就能夠想到,讓軟鍵盤在消失的時候讓相應Item中的EditText消失焦點clearFouce();但是有個關鍵的問題,

就是在獲得返回事件的時候,如果獲得的事件不對那就不會達到想要的效果。這個back時間一定要是自定Layout中的back事件才可以。

直接上代碼。

復制代碼 代碼如下:

<cn.test.systemSetting.MyLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboardlayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/main_bg"
    android:orientation="vertical" >
    <ListView
                android:id="@+id/lv_data"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:cacheColorHint="#00000000"
                android:transcriptMode="normal"
                >
     </ListView>
</cn.test.systemSetting.MyLayout>

自定義layout中所作的處理:

復制代碼 代碼如下:

package cn.test.systemSetting;

import com.********.R;

import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
/**
 *
 * 針對設備管理鍵盤事件的處理
 * divid小碩
 *
 * **/

public class MyLayout extends LinearLayout {
    private Context context;
    public MyLayout(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        this.context=context;
        LayoutInflater.from(context).inflate(R.layout.device_manager, this);//此處所加載的layout就是上面的xml,即它的名字就是device_manager.xml
    }
    public MyLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

   
    public MyLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    @Override
    public boolean dispatchKeyEventPreIme(KeyEvent event) {
        // TODO Auto-generated method stub
        if(context!=null){
            InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
            if(imm.isActive() && event.getKeyCode() == KeyEvent.KEYCODE_BACK){
                View view = DeviceManagerActivity.lv_data.getFocusedChild();
                if(view!=null){
                    view.clearFocus();
                }

            }
        }

        return super.dispatchKeyEventPreIme(event);
    }
}

主界面所采用的加載方式要是這樣的:

復制代碼 代碼如下:

public class DeviceManagerActivity extends Activity implements OnClickListener{
    public static ListView lv_data;
    static DevMgrAdapter adapter;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 1.全屏
        requestWindowFeature(Window.FEATURE_NO_TITLE); // 無標題
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        this.setContentView(new MyLayout(this));
        init();
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费看片一区二区三区 | 四虎影院在线看 | 日韩视频一区二区三区在线观看 | 国产中文字幕免费观看 | 欧美精品第十页 | 2019精品手机国产品在线 | 成人国产精品久久久 | 黄色电影在线免费看 | 极品在线 | 精品视频一区二区三区 | 亚洲国产成人精品女人久久久 | 国产午夜精品一区二区三区嫩草 | 久草免费在线 | 国产精品久久久久久久久动漫 | 青青久草在线 | 美女黄色免费网站 | 国产一区二区影院 | 久久一日本道色综合久久 | av网站观看 | 日韩在线免费 | 欧美视频中文字幕 | 成人福利av | 一区二区不卡 | 成人免费观看网址 | 亚洲电影一区 | 国产精品女人视频 | 成人亚洲视频 | 久久精品国产v日韩v亚洲 | 成人一区二区在线 | 久久porn| 久久久久久亚洲 | 中文字幕一区二区三 | 免费国产一区二区 | 精品视频一区二区 | 99精品久久 | 一二三区精品 | 久久精品视频网 | 综合久久久 | 中文字幕自拍偷拍 | 国产精品成人3p一区二区三区 | 日本中文在线观看 |