我做了叠加div:
position: absolute; top: 0; left: 0; widht: 100%; height: 100%;
Run Code Online (Sandbox Code Playgroud)
基本上我希望这个叠加div覆盖我的整个页面.它做了我需要的,但我也需要底层的div是不可点击的.它们确实无法点击,但仅限于FF,Safari和Chrome.在IE和Opera中,您仍然可以单击下面的按钮.
有没有人知道如何实现这种"无法解决的潜在行为"?
我有2 ImageView
秒,我从屏幕的顶部翻译到底部.这些视图是从xml中隐藏的,并且动画是从java代码添加的.动画效果很好,但onClickListener
我在java代码中添加的内容似乎不起作用.我使用fillAfter
动画的属性使翻译后的iamges保持在他们的到来,但这些图像不再可点击了......但是,他们在翻译前的位置仍然可以点击...我看不出这个的逻辑.有人可以给我一些建议吗?
我的应用程序包含一个填充按钮的区域.我希望以这种方式实现活动,按钮区域上的fling手势会将其切换到另外两个区域之一(使用ViewFlipper).
我在检测手势方面做了两种方法.第一个涉及使用GestureDetector.但是,Button上的触摸动作事件没有引发onTouchEvent活动方法,所以 - 结果 - 我无法将它转发到GestureDetector类.简而言之,失败.
第二种方法 - 使用GestureOverlayView.然而,这一次,我已经达到了第二个极端:不仅检测到手势,而且执行手势的按钮报告了点击.
我希望界面以下列方式工作:如果用户触摸按钮并释放触摸(或仅略微移动手指),则按钮会报告单击并且未检测到任何手势.另一方面,如果用户触摸屏幕并进行更长时间的移动,则应检测手势并且按钮不报告点击事件.
我已经实现了一个小概念验证应用程序.活动XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical">
<android.gesture.GestureOverlayView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/overlay">
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
<TextView android:id="@+id/display" android:layout_width="match_parent" android:layout_height="wrap_content" />
<Button android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/button"/>
</LinearLayout>
</android.gesture.GestureOverlayView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
活动java代码如下:
package spk.sketchbook;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.gesture.*;
import android.gesture.GestureOverlayView.OnGestureListener;
public class Main extends Activity implements OnGestureListener, OnClickListener
{
private void SetupEvents()
{
GestureOverlayView ov = (GestureOverlayView)findViewById(R.id.overlay);
ov.addOnGestureListener(this); …
Run Code Online (Sandbox Code Playgroud) 我创建了一个带按钮和非按下状态选择器的ImageButton,这很好用.
但是按钮的形状不规则,我只希望它可以在底层矩形图像不透明的地方点击.
所以我实现了一个OnTouchListener,它根据Bitmap的像素值检查触摸事件的坐标(如第一个答案中所述:链接).就判断是否按下按钮的逻辑而言,这是有效的,但现在按钮的图像不再变为按下的图像.
这是我有的:
选择器xml文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/button_start_call_pressed" />
<item android:drawable="@drawable/button_start_call_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)
布局中部分透明的ImageButton:
<ImageButton
android:id="@+id/dashboardStartCallButton"
android:background="@null"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/start_call_button_selector"
/>
Run Code Online (Sandbox Code Playgroud)
在活动中:
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
...
ImageButton startCallButton = (ImageButton) this.findViewById(R.id.dashboardStartCallButton);
startCallButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return OnStartCallButtonTouch(v,event);
}
});
}
public boolean OnStartCallButtonTouch(View v, MotionEvent event)
{
Bitmap TheBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.button_start_call_normal);
int eventPadTouch = event.getAction();
int iX = (int) event.getX();
int …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用与checkbox元素关联的标签创建一个自定义设计的复选框,并隐藏(display:none)复选框.
这在除IE之外的所有浏览器中都能正常工作,这需要使复选框可见,以便标签可以点击.
这是我的代码......
HTML
<input type="checkbox" id="myCheck" />?
Run Code Online (Sandbox Code Playgroud)
CSS
label.checkbox {
border:1px solid #666;
width:25px;
height:23px;
display:block;
}?
Run Code Online (Sandbox Code Playgroud)
jQuery的
$("input[type=checkbox]").each(function() {
$(this).hide().before('<label for="' + $(this).attr("id") + '" class="checkbox"></label>');
});
$("input[type=checkbox]").live('change', function() {
if ($(this).prop('checked') == true) {
$('label[for=' + $(this).attr("id") + ']').html("X")
} else {
$('label[for=' + $(this).attr("id") + ']').html("")
}
});?
Run Code Online (Sandbox Code Playgroud)
或者是jsfiddle
我有一个TextView,我在其中设置HTML文本.本文有很多链接.点击链接时,它并不总是触发onClick方法.因此,我正在尝试扩展ClickableSpan的区域,以便始终响应.
int start = strBuilder.getSpanStart(span);
int end = strBuilder.getSpanEnd(span);
int flags = strBuilder.getSpanFlags(span);
final ClickableSpan clickable = new ClickableSpan() {
public void onClick(View view) {
getTouchActions(span.getURL());
}
};
strBuilder.setSpan(clickable, start, end, flags);
strBuilder.removeSpan(span);
Run Code Online (Sandbox Code Playgroud) 如何在java中创建一个JButton,不可见但可点击?
button.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
使按钮不可见,但不可点击,是否有任何方法使其不可见,但可点击?
我试过做:
button.setVisible(false);
button.setEnabled(true);
Run Code Online (Sandbox Code Playgroud)
但那也不起作用.我想这样做是因为我想要一个带图像的按钮,如果我将不可见的JButton放在图像上,按钮会在你点击图像时响应,或者是隐形按钮.
有没有办法我们可以将自定义drawable(从资源)设置为TextView的span,特别是ClickSpan?
谷歌通过覆盖跨度的updateDrawState()来返回许多关于禁用高亮或更改颜色等的答案,但是我没有看到如何将drawable设置为背景.
我在DynamicDrawableSpan中看到了一种可能性,但我无法使其与ClickableSpan一起使用.这是我的代码:
public class MyDynamicDrawableSpan extends DynamicDrawableSpan
{
private Context c;
public MyDynamicDrawableSpan(Context context) {
super();
c = context;
}
@Override
public Drawable getDrawable() {
Resources res = c.getResources();
Drawable d = res.getDrawable(R.drawable.span_background);
return d;
}
Run Code Online (Sandbox Code Playgroud)
}
这就是我使用它的方式:
SpannableStringBuilder ssb = new SpannableStringBuilder(text);
MyDynamicDrawableSpan ddSpan = new MyDynamicDrawableSpan(getApplicationContext());
...
ssb.setSpan(ddSpan, start, end, 0);
ssb.setSpan(new ClickableSpan(...
Run Code Online (Sandbox Code Playgroud)
这不起作用.它只会使跨度不可见.有什么好主意吗?
我正在开发一个OpenLayers地图,它将同时显示多个KML图层.我希望能够点击任何图层中的某个功能,并弹出一个向我显示的信息.到目前为止,我只能点击最近添加的图层.如果我想点击之前添加的图层,我必须关闭之前添加的所有图层.显然这不太理想.到目前为止,这是我的代码:
var select = [];
function addLayer(layerId, layerLink, layerColor)
{
var kmlLayer = new OpenLayers.Layer.Vector("Layer_"+layerId, {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: layerLink,
format: new OpenLayers.Format.KML({
extractStyles: true,
extractAttributes: true,
maxDepth: 2
})
})
});
kmlLayer.events.on({
"featureselected": onKMLSelect,
"featureunselected": onKMLUnselect
});
select["Layer_"+layerId] = new OpenLayers.Control.SelectFeature(kmlLayer);
map.addControl(select["Layer_"+layerId]);
select["Layer_"+layerId].activate();
map.addLayer(kmlLayer);
}
function onKMLPopupClose(evt) {
for(s in select)
{
select[s].unselectAll();
}
}
function onKMLSelect(event) {
var feature = event.feature;
var content = "<h2>"+feature.attributes.name + "</h2>" + feature.attributes.description;
popup = new OpenLayers.Popup.FramedCloud("chicken",
feature.geometry.getBounds().getCenterLonLat(), …
Run Code Online (Sandbox Code Playgroud) 我一直在努力寻找解决方案,但收效甚微.我必须显示一个包含项目列表的弹出窗口.我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener.任何有关此问题的帮助将不胜感激.
谢谢
EDIT1:
public class PopUpWindowActivity extends Activity {
/** Called when the activity is first created. */
String[] countries = new String[] {
"India", "USA", "Canada"
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ListView lv = new ListView(this);
lv.setAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, countries));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView <? > arg0, View arg1, int arg2,
long arg3) {
Log.v("clicked", (String)((TextView) arg1).getText());
}
});
ll.addView(lv); …
Run Code Online (Sandbox Code Playgroud) clickable ×10
android ×6
html ×2
javascript ×2
animation ×1
checkbox ×1
css ×1
gestures ×1
imagebutton ×1
interface ×1
invisible ×1
java ×1
jbutton ×1
jquery ×1
label ×1
listview ×1
openlayers ×1
overlay ×1
popupwindow ×1
swing ×1
textview ×1
touch ×1
transparent ×1
vector ×1