setOnClickListener未工作,而setOnTouchListener正在kotlin中工作
我正在制作一个meme maker应用程序,因此我允许用户将textview添加到图像中,并将textview拖动到imageview中的任何位置。最初,所有文本视图都处于“消失”状态,当用户单击“添加文本”按钮时,我将一次显示一个文本视图。我可以将textview拖放到任何我喜欢的地方,但onclicklistener无法工作。我想向用户显示,他们点击了文本视图,并给他们一些选项来编辑文本,如颜色、大小等。但是祝酒词从未出现,也没有错误。其代码如下:setOnClickListener未工作,而setOnTouchListener正在kotlin中工作,kotlin,onclick,onclicklistener,ontouchlistener,ontouch,Kotlin,Onclick,Onclicklistener,Ontouchlistener,Ontouch,我正在制作一个meme maker应用程序,因此我允许用户将textview添加到图像中,并将textview拖动到imageview中的任何位置。最初,所有文本视图都处于“消失”状态,当用户单击“添加文本”按钮时,我将一次显示一个文本视图。我可以将textview拖放到任何我喜欢的地方,但onclicklistener无法工作。我想向用户显示,他们点击了文本视图,并给他们一些选项来编辑文本,如颜色、大小等。但是祝酒词从未出现,也没有错误。其代码如下: class MemeActivity :
class MemeActivity : AppCompatActivity(){
var mLayoutRoot: RelativeLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_meme)
tv1.setClickable(true);
setSupportActionBar(meme_toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
meme_toolbar.setNavigationOnClickListener {
finish()
}
val intent=intent
val memeImage=intent.getStringExtra("image")
Picasso.get().load(memeImage).into(meme_image)
mLayoutRoot=findViewById(R.id.rl_meme)
val added=findViewById<Button>(R.id.btn_add_text)
val save=findViewById<ImageView>(R.id.save_meme)
added.setOnClickListener {
if(tv1.visibility==View.GONE){
tv1.visibility=View.VISIBLE
}
else if (tv2.visibility==View.GONE){
tv2.visibility=View.VISIBLE
}
else if (tv3.visibility==View.GONE){
tv3.visibility=View.VISIBLE
}
else{
Toast.makeText(this,"No More",Toast.LENGTH_SHORT).show()
}
}
tv1.setOnClickListener {
Toast.makeText(this,"clicked tv1",Toast.LENGTH_SHORT).show()
}
tv1.setOnTouchListener(mOnTouchListenerTv2)
tv2.setOnTouchListener(mOnTouchListenerTv2)
tv3.setOnTouchListener(mOnTouchListenerTv2)
}
override fun onBackPressed() {
if (!mLayoutRoot!!.isFocused) {
mLayoutRoot!!.requestFocus()
mLayoutRoot!!.requestFocusFromTouch()
} else {
super.onBackPressed()
}
}
val mOnTouchListenerTv2: View.OnTouchListener = object : View.OnTouchListener {
var prevX = 0
var prevY = 0
override fun onTouch(v: View, event: MotionEvent): Boolean {
val par =
v.layoutParams as RelativeLayout.LayoutParams
when (event.action) {
MotionEvent.ACTION_MOVE -> {
par.topMargin += event.rawY.toInt() - prevY
prevY = event.rawY.toInt()
par.leftMargin += event.rawX.toInt() - prevX
prevX = event.rawX.toInt()
v.layoutParams = par
return true
}
MotionEvent.ACTION_UP -> {
par.topMargin += event.rawY.toInt() - prevY
par.leftMargin += event.rawX.toInt() - prevX
v.layoutParams = par
return true
}
MotionEvent.ACTION_DOWN -> {
prevX = event.rawX.toInt()
prevY = event.rawY.toInt()
par.bottomMargin = -2 * v.height
par.rightMargin = -2 * v.width
v.layoutParams = par
return true
}
}
return false
}
}
}
class MemeActivity:appcompativity(){
var mLayoutRoot:RelativeLayout?=null
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u meme)
tv1.可设置可点击(真);
设置支持操作栏(meme_工具栏)
supportActionBar!!.setDisplayHomeAsUpEnabled(真)
meme_toolbar.setNavigationOnClickListener{
完成()
}
val intent=intent
val memeImage=intent.getStringExtra(“图像”)
毕加索.get().load(memeImage).into(meme_图像)
mLayoutRoot=findViewById(R.id.rl_meme)
添加的val=findViewById(R.id.btn\u添加\u文本)
val save=findviewbyd(R.id.save\u meme)
添加了.setOnClickListener{
if(tv1.visibility==View.GONE){
tv1.visibility=View.VISIBLE
}
else if(tv2.visibility==View.GONE){
tv2.visibility=View.VISIBLE
}
else if(tv3.visibility==View.GONE){
tv3.visibility=View.VISIBLE
}
否则{
Toast.makeText(这个“不再”,Toast.LENGTH\u SHORT.show()
}
}
tv1.setOnClickListener{
Toast.makeText(这个“点击tv1”,Toast.LENGTH\u SHORT.show()
}
tv1.setOnTouchListener(mOnTouchListenerTv2)
tv2.setOnTouchListener(mOnTouchListenerTv2)
tv3.setOnTouchListener(mOnTouchListenerTv2)
}
重写函数onBackPressed(){
如果(!mLayoutRoot!!.isFocused){
mLayoutRoot!!.requestFocus()
mLayoutRoot!!.requestFocusFromTouch()
}否则{
super.onBackPressed()
}
}
val mOnTouchListenerTv2:View.OnTouchListener=对象:View.OnTouchListener{
var prevX=0
var prevY=0
override fun onTouch(v:View,event:MotionEvent):布尔值{
瓦尔帕尔
v、 layoutParams作为RelativeLayout.layoutParams
何时(事件、动作){
MotionEvent.ACTION\u MOVE->{
Pop.TopLeal+ =事件
prevY=event.rawY.toInt()
Pr.LeftLoop+=事件.RWX.toTin()-PROVX
prevX=event.rawX.toInt()
平价债券
返回真值
}
MotionEvent.ACTION\u UP->{
Pop.TopLeal+ =事件
Pr.LeftLoop+=事件.RWX.toTin()-PROVX
平价债券
返回真值
}
MotionEvent.ACTION\u向下->{
prevX=event.rawX.toInt()
prevY=event.rawY.toInt()
Palm边际=-2×V.高度
Pr.RealEng==-2*V.宽度
平价债券
返回真值
}
}
返回错误
}
}
}
XML代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_meme"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MemeActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout_meme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:background="@android:color/white">
<androidx.appcompat.widget.Toolbar
android:id="@+id/meme_toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorDarkGrey">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Meme"
android:textSize="20sp"
android:maxLines="1"
android:textStyle="bold"
android:textColor="@android:color/white"
android:layout_centerVertical="true"/>
<ImageView
android:id="@+id/save_meme"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
android:src="@drawable/ic_save_black_24dp"
android:layout_marginEnd="5dp"
android:contentDescription="Meme" />
</RelativeLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
android:id="@+id/ll_overall_textview"
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center"
android:background="@color/colorDarkGrey"
android:orientation="vertical"
android:layout_below="@id/app_bar_layout_meme">
<LinearLayout
android:id="@+id/ll_textview"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:gravity="center"
android:padding="2dp"
android:layout_marginTop="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp">
<ImageView
android:id="@+id/iv_textsize"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:background="@drawable/box"
android:src="@drawable/textsize1"
android:textColor="#6E6B6B"
android:textSize="13sp"
android:layout_margin="2dp"
android:layout_weight="1"
android:textAllCaps="false"
style="?android:attr/buttonBarButtonStyle"/>
<ImageView
android:id="@+id/iv_textcolor"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:background="@drawable/box"
android:scaleType="fitCenter"
android:textColor="@color/colorGrey"
android:layout_margin="2dp"
android:textAllCaps="false"
android:layout_weight="1"
android:src="@drawable/textcolor"
style="?android:attr/buttonBarButtonStyle"/>
<ImageView
android:id="@+id/iv_italic"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:background="@drawable/box"
android:src="@drawable/italic"
android:layout_margin="2dp"
android:textColor="@color/colorGrey"
android:textAllCaps="false"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<ImageView
android:id="@+id/iv_bold"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:layout_margin="2dp"
android:background="@drawable/box"
android:textColor="@color/colorGrey"
android:src="@drawable/bold"
android:textAllCaps="false"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<ImageView
android:id="@+id/iv_delete"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:layout_margin="2dp"
android:background="@drawable/box"
android:textColor="@color/colorGrey"
android:src="@drawable/delete"
android:textAllCaps="false"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
</LinearLayout>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_marginTop="0dp">
<RelativeLayout
android:id="@+id/fl_meme_container"
android:layout_width="match_parent"
android:layout_height="420dp"
android:layout_marginTop="152dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/meme_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#000000"
android:text="TEXT"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:visibility="gone"
tools:visibility="visible"
android:tag="1"/>
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#000000"
android:text="TEXT"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:visibility="gone"
tools:visibility="visible"
android:tag="2"/>
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#000000"
android:text="TEXT"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:visibility="gone"
tools:visibility="visible"
android:tag="3"/>
</RelativeLayout>
<Button
android:id="@+id/btn_add_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/fl_meme_container"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:text="Add Text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/fl_meme_container" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
请帮助我如何使onClicklistener工作