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

热点内容
服务器参数配置未响应是什么意思 浏览:599
pythonchardet模块 浏览:748
添加gm命令 浏览:662
rsa加密码乱码 浏览:754
网站服务器需要租什么 浏览:995
c语言常用排序算法 浏览:820
pythonhtml文件上传 浏览:521
dosat命令执行exe 浏览:93
1024程序员牛头人 浏览:550
程序员能学到技术吗 浏览:418
pe软件解压后不能安装 浏览:359
易语言提取网页文字加密 浏览:372
思迅软件都需要加密狗吗 浏览:78
17种食物缓解压力 浏览:979
sql2005压缩日志 浏览:92
程序员为什么依赖百度 浏览:159
三年级上册北师大版数学第一课速算法 浏览:266
php面试题知乎 浏览:557
92汽油的压缩比 浏览:303
杂货实物商城源码 浏览:764