android 2.3:页面元素不可点击
大家好我在Android编程方面很新颖(2个月),所以我希望你能原谅我这个愚蠢的问题,这让我疯狂了好几个小时。我已经开发了具有作为第一页下面的登录表单的应用程序:android 2.3:页面元素不可点击
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:scrollbars="vertical" android:scrollbarStyle="insideOverlay" android:layout_height="fill_parent" android:scrollbarAlwaysDrawVerticalTrack="true" android:gravity="top" android:id="@+id/LinearLayoutConnect" android:paddingTop="0px" android:paddingLeft="20px" android:paddingRight="10px" android:paddingBottom="20px">
<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbarSize="10px" android:scrollbarStyle="insideOverlay" android:addStatesFromChildren="true" android:id="@+id/ScrollView03">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/LinearLayout02">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/connect" android:paddingTop="25px">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal">
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.envCode" android:id="@+id/label_env" android:textColor="#fff" android:layout_weight="33"></TextView>
<EditText android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/env" android:layout_weight="67"></EditText>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:paddingTop="15px">
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.email" android:id="@+id/label_login" android:textColor="#fff" android:layout_weight="33"></TextView>
<EditText android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/login" android:layout_weight="67"></EditText>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:paddingTop="15px">
<TextView android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.password" android:id="@+id/label_password" android:textColor="#fff" android:layout_weight="33"></TextView>
<EditText android:layout_width="0dip" android:layout_height="wrap_content" android:id="@+id/password" android:password="true" android:layout_weight="67"></EditText>
</LinearLayout>
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:enabled="true" android:text="@string/connect.remember" android:id="@+id/che_user_save" android:layout_gravity="center" android:paddingTop="20px"></CheckBox>
<TableLayout android:id="@+id/TableLayoutconnect" android:layout_height="wrap_content" android:visibility="visible" android:layout_width="fill_parent" android:paddingTop="20px">
<TableRow android:id="@+id/TableRowconnect01" android:layout_height="wrap_content" android:layout_width="fill_parent">
<Button android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/connect.connect" android:id="@+id/auth_button_connect" android:layout_weight="52"></Button>
<Button android:layout_width="0dip" android:layout_height="wrap_content" android:text="@string/global.reset" android:id="@+id/auth_button_reset" android:layout_weight="48"></Button>
</TableRow>
</TableLayout>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/connect.link" android:width="266sp" android:gravity="center" android:layout_marginTop="20sp" android:padding="4sp" android:background="#fe0000" android:textColor="#ffffff" android:id="@+id/PromoBar" ></TextView>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/disconnect">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/global.disconnect" android:id="@+id/auth_button_disconnect" android:layout_weight="60"></Button>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
这是相关的Java代码:
env = (EditText) findViewById(R.id.env);
txt_login = (EditText) findViewById(R.id.login);
txt_password = (EditText) findViewById(R.id.password);
but_connect = (Button) findViewById(R.id.auth_button_connect);
but_connect.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
XMLRPC_connect();
}
});
but_reset = (Button) findViewById(R.id.auth_button_reset);
but_reset.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
try {
ClearSettings(getBaseContext(),filename_settings);
env.setText("");
txt_login.setText("");
txt_password.setText("");
} catch(Exception e) {}
}
});
的问题是: 在Android中的先前版本(最多2.2)所有的按钮和EditText字段都是完全可点击和可编辑的。
在Android 2.3上(在Eclipse下使用模拟器 - 没有真实设备),屏幕对触摸或点击完全不敏感:无法选择并突出显示其中的任何元素,只能使用轨迹球或键盘,导致非常讨厌。屏幕本身不可滚动。
我试图强制所有的TextEdit字段和按钮可编辑,可聚焦或可点击,我试图更新Eclipse ADT,我试图用Android 2.3库编译项目,...没有结果。无论点击什么元素,其onClick函数都不会触发......我真的用完了解决方案!谢谢你的帮助!
我有三个建议:
- 我认为你可以用id
connect
和disconnect
它们都是垂直和嵌入在一个垂直的LinearLayout id为LinearLayout02
摆脱的LinearLayout的。结果应该是一样的。 - 覆盖活动中的
onTouchEvent
,并检查当您触摸屏幕时是否调用此函数。从那里开始一步一步走向更深层次的布局。 - 尝试一次删除一个视图/布局。也许你找到这种方式的原因....
感谢您的回答:事实上,问题仅仅是在同一个文件中包含多个ScrollViews(因为为了简单起见我只发布了一个ScrollViews,没有人可以知道:-P)。实际上,我切换到了一个包含多个LinearLayouts的大滚动视图,我可以按照自己的喜好显示/消失。 – ste74 2011-03-31 06:48:16
我也有这个问题只在2.3。删除滚动视图解决了问题。谢谢! – Robert 2011-09-08 11:08:58