我需要在EditText
中触摸toolTip
弹出窗口中的可绘制图标
我的EditText带有可绘制图标
我需要用户点击问号工具提示弹出窗口应该打开,就像这样
但是目前的实施我并没有直截了当的做法。我在右侧放置了隐形视图并跟踪了可绘制图标的点击,当点击图标时,我在隐形视图上设置了工具提示弹出窗口...所以这不是我想的那样。
但我不知道如何将这个可绘制的问号图标作为视图?
我做错了什么?
免费提问
谢谢
答案 0 :(得分:0)
试试这个:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/questionMark"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
/>
</RelativeLayout>
然后你可以在ImageView上拥有一个onClickListener。
希望这有帮助。
答案 1 :(得分:0)
因为
TextInputLayout
与EditText
一起使用,所以你必须使用https://github.com/ViHtarb/Tooltip库获取工具提示,再做一件事就是在右边添加你的问号(?)drawable编辑文本并在下面的代码中应用该抽象的onClick:
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int DRAWABLE_LEFT = 0;
final int DRAWABLE_TOP = 1;
final int DRAWABLE_RIGHT = 2;
final int DRAWABLE_BOTTOM = 3;
if(event.getAction() == MotionEvent.ACTION_UP) {
if(event.getRawX() >= (editText.getRight() - editText.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
// Run your tool-tip action from here
Tooltip tooltip = new Tooltip.Builder(v)
.setText("Hello tooltip")
.show();
return true;
}
}
return false;
}
});
答案 2 :(得分:0)
我做了一些欺骗。这很丑,但对我有用。你可以使用一个按钮(作为占位符),高度和0dp。库使用anchorview仅查找弹出窗口的位置。 看我下面怎么做。
这是xml
setInterval(function() {
var l = chart.series[0].points.length;
var p = chart.series[0].points[l - 1];
var ix = p.x + interval;
var vv = jugalsLib.nextValue(p.y);
var w = ix + 30000,
z = jugalsLib.nextValue(p.y);
var v;
a = 0;
if (a == 1) {
v = {
y: vv,
x: ix,
};
} else {
v = {
y: vv,
x: ix,
};
}
series.addPoint(v, true, true);
series3.data[0].setState('hover');
series3.data[0].update(v);
series3.data[0].setState();
series2.addPoint([w, z], true, true);
document.getElementById("coor_y").value = jugalsLib.nextValue(p.y).toFixed(4);
yAxis.removePlotLine('avgLine');
yAxis.addPlotLine({
value: vv,
/*label: {
text: vv.toFixed(2),
verticalAlign: 'middle',
align: 'right',
rotation: 0,
},*/
color: 'red',
width: 4,
dashStyle: 'Dash',
id: 'avgLine'
});
xAxis.removePlotLine('ahLine');
xAxis.addPlotLine({
value: ix + 6000,
/*label: {
text: Highcharts.dateFormat('%I:%M:%S %p', ix+6000) ,
verticalAlign: 'middle',
align: 'right',
rotation: 0,
},*/
color: 'red',
width: 2,
dashStyle: 'Dash',
id: 'ahLine'
});
}, interval);
这是应用程序如何点击可绘制按钮。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
app:hintTextAppearance="@style/TextInput">
<android.support.design.widget.TextInputEditText
android:id="@+id/et_pn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username_pn"
android:inputType="number"
android:maxLength="18"
android:drawableEnd="@drawable/ic_close"
app:theme="@style/EditText"/>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/placeholder"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentEnd="true"
android:layout_marginEnd="15dp"
android:layout_centerVertical="true"/>
</RelativeLayout>