導航:首頁 > 操作系統 > androidactivity焦點

androidactivity焦點

發布時間:2022-10-23 22:43:01

A. 安卓 View層 和 Activity層 消息傳遞機制和焦點問題

其實是activity派送出來的事件,不是無人知曉。而是這種問題不容易弄出一個關鍵字來搜索。

一個activity的touch事件先由activity的dispatchtouchevent來處理,負責派送。

dispatchtouchevent把ACTION_DOWN事件首先交給view,然後view返回false再傳遞回activity的onTouchEvent中處理。

具體的部分代碼如下:

java">if(ev.getAction()==MotionEvent.ACTION_DOWN){
onUserInteraction();
}


如果用戶需要這個ACTION_DOWN,應該在自身的onTouchEvent中對 ACTION_DOWN採取return true的響應,表示這個ACTION_DOWN歸我了。只有在dispatchtouchevent為ACTION_DOWN事件找到一個歸屬,也即是target之後,後面的ACTION_MOVE和ACTION_UP才會對這個target傳送。


如果你這個頁面就僅僅有一個這樣需要捕捉事件的view,你是可以直接在dispatchtouchevent中直接傳送給這個view然後return true的。

B. android 開發怎麼讓打開一個activity時 edittext獲得焦點之後自動彈出輸入鍵盤

// 獲取編輯框焦點
editText.setFocusable(true);
//打開軟鍵盤
IInputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
如果你想關閉的話在清單文件中的本activity 屬性 android:windowSoftInputMode=」stateHidden」

C. 怎麼使dialog失去焦點而不消失,activity獲得焦點

Activity像Dialog一樣,可以使用主題樣式,默認sdk提供一個theme.dialog, 4.0開始使用Theme.Holo.DialogWhenLarge

在Androidmanifest.xml中配置Activity的時候添加@android:style/Theme.Holo.DialogWhenLarge:
在計算listview總高度並設置
ListView listView = (ListView) findViewById(id);
YourAdapter adapter = new MyAdapter("初始化你的適配器");
listView.setAdapter(adapter);
(listView);(在setAdapter後調用自定義的方法)

復制代碼代碼如下:

/**
* @param listView
*/
private void (ListView listView) {

ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}

int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}

ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}

使用該方法需要注意:子ListView的每個Item必須是LinearLayout,不能是其他的,因為其他的Layout(如RelativeLayout)沒有重寫onMeasure(),所以會在onMeasure()時拋出異常。

D. android彈出dialog後,activity得到焦點的問題,activity能獲得焦點,但是卻不能獲得裡面的控制項的點擊事件

你是想跳出dialog的時候,dialog裡面的控制項就獲取焦點呢還是,點擊dialog裡面的控制項獲取焦點.
點擊是自動獲取的焦點,你讓給他設置相應的點擊事件監聽.

要是點dialog以後就想讓dialog裡面的控制項獲取焦點,則要是給自己手動設置.

E. android中 怎麼使新載入的activity獲得焦點~

android中,如果在業務代碼層實現控制項獲得焦點,需要先調用setFocus(),再調用requestFocus()。
如果直接使用layout布局使其中的控制項某人獲取焦點,只需要在控制項中添加一個<requestFocus />標簽。

以EditText為例:
<EditText id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:paddingBottom="4">
<requestFocus />
</EditText>
這樣在打開這個Activity時,EditText會自動獲取焦點。

F. android開發 如何讓Activity或者布局失去焦點,像彈出Dialog一樣。

你可以在整個布局文件中嵌套一個空的布局,讓這個空布局去獲取焦點,這樣你另一個布局中的控制項就不會獲取焦點了,這個我以前用過,肯定好用。

G. android如何設置整個activity不可點擊不可獲得焦點

那你把可以點擊的和可以獲取焦點的,全都設置Enabled和Focusable屬性全為false假吧,或者在代碼里修改也行

閱讀全文

與androidactivity焦點相關的資料

熱點內容
國貨哪個品牌最好app 瀏覽:949
看哪個app給錢最多 瀏覽:178
編程靠經驗嗎 瀏覽:759
c教程pdf下載地址 瀏覽:573
製作視頻哪個app有瘦臉功能 瀏覽:647
linux查看線程內存 瀏覽:509
命令行簽名apk 瀏覽:92
網頁照片旋轉源碼 瀏覽:842
QQ會員頭像源碼 瀏覽:263
內核命令行 瀏覽:324
腳本提取源碼器 瀏覽:930
smo源碼 瀏覽:877
為什麼要搭建單獨伺服器 瀏覽:480
編譯器有什麼控制 瀏覽:893
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:647
解密塔羅牌小程序源碼 瀏覽:862
聚合跑分源碼 瀏覽:555
注冊dns伺服器寫什麼 瀏覽:881
linux安裝deb包 瀏覽:523