导航:首页 > 操作系统 > 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焦点相关的资料

热点内容
文件夹侧面目录标签怎么制作 浏览:230
做程序员学什么 浏览:320
pdfeditor教程 浏览:880
fortran把文件放入文件夹 浏览:709
程序员1年经验不敢投简历 浏览:481
如何看电脑的源码 浏览:897
找工作app软件哪个好 浏览:96
信息管理网站源码 浏览:439
小说app哪个好免费 浏览:224
域名在线加密 浏览:146
软件编程西安交大 浏览:453
是不是串货的奶粉查不到溯源码的 浏览:825
北京dns服务器云主机 浏览:221
openldaplinux安装 浏览:23
java取月的最后一天 浏览:10
腾讯云服务器多久退款 浏览:949
微信广告植入系统源码 浏览:922
一年级语文上册pdf 浏览:315
好久不见app干什么用的 浏览:143
压缩包解压码对方可以更改吗 浏览:256