我想添加像Snapchat"添加标题"等功能。在我最近的项目中。
预期输出:当我点击添加文字按钮时,会出现一个带有EditText
的标题栏,并且打开的键盘用户可以输入文字。如果我点击布局键盘,它会自动关闭,看起来像TextView
和标题栏可以在y轴的屏幕上移动。
尝试失败:当我点击添加文字按钮时,会出现一个带有EditText
的标题栏,标题栏无法在y轴上移动屏幕(如果我采取的话) TextView
它可以正常运行,但不适用于EditText
)。因为我无法点击布局。
我也尝试过像clickable false这样的属性。但它不起作用
我的问题:如何在只有触摸事件的情况下将EditText显示为TextView,而点击它可以作为EditText使用吗?
添加edittext文本值后,我无法点击并触摸布局。
这是我的代码:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel_Main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:clickable="true">
<FrameLayout
android:id="@+id/frame_cameraHolder"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_cameraMain"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<RelativeLayout
android:id="@+id/rel_cameraTitleHolder1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp">
<ImageButton
android:id="@+id/ib_cameraClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="@android:color/transparent"
android:src="@drawable/ic_close_white" />
<ImageButton
android:id="@+id/ib_cameraForward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="24dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rel_cameraTitleHolder2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_margin="5dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="15dp"
android:visibility="gone">
<ImageButton
android:id="@+id/ib_cameraCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="@android:color/transparent"
android:src="@drawable/ic_close_white" />
<ImageButton
android:id="@+id/ib_cameraBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="@android:color/transparent"
android:src="@drawable/ic_back" />
<ImageButton
android:id="@+id/ib_cameraStickers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_toLeftOf="@+id/ib_cameraDraw"
android:background="@android:color/transparent"
android:src="@drawable/ic_sticker" />
<ImageButton
android:id="@+id/ib_cameraDraw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_toLeftOf="@+id/ib_cameraText"
android:background="@android:color/transparent"
android:src="@drawable/ic_draw" />
<ImageButton
android:id="@+id/ib_cameraText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="24dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_text" />
</RelativeLayout>
<!--<uz.shift.colorpicker.LineColorPicker
android:id="@+id/color_picker"
android:layout_width="match_parent"
android:layout_height="60dp"
app:orientation="horizontal"
android:visibility="gone"/>-->
<RelativeLayout
android:id="@+id/rel_cameraTextHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:visibility="gone">
<ImageButton
android:id="@+id/ib_cameraTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@android:color/transparent"
android:src="@drawable/ic_fontstyle" />
<TextView
android:id="@+id/ib_cameraDone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="24dp"
android:text="Done"
android:textColor="@color/white"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
<!--diff-->
<RelativeLayout
android:id="@+id/rel_cameraHolder1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:visibility="visible">
<ImageButton
android:id="@+id/ib_cameraflash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="50dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_flash" />
<Button
android:id="@+id/btn_cameraCapturePic"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerHorizontal="true"
android:background="@drawable/btn_capture" />
<ImageButton
android:id="@+id/ib_cameraReverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="50dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_reverse" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rel_cameraHolder2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:visibility="gone">
<FrameLayout
android:id="@+id/frame_cameraTimer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp">
<ImageButton
android:id="@+id/ib_cameraTimer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="24dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_blanck_timer" />
<TextView
android:id="@+id/text_cameraTimerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="34dp"
android:layout_marginTop="6dp"
android:text="1"
android:textColor="@color/white"
android:textSize="8dp"
android:textStyle="bold" />
</FrameLayout>
<ImageButton
android:id="@+id/ib_cameraSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_toRightOf="@+id/frame_cameraTimer"
android:background="@android:color/transparent"
android:src="@drawable/ic_save" />
<ImageButton
android:id="@+id/ib_cameraYourStory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_toRightOf="@+id/ib_cameraSave"
android:background="@android:color/transparent"
android:src="@drawable/ic_add" />
<ImageButton
android:id="@+id/ib_cameraSaveForward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="24dp"
android:background="@drawable/btn_capture"
android:src="@drawable/ic_forward" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rel_cameraDeleteHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:visibility="gone">
<ImageButton
android:id="@+id/ib_cameraDelete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@android:color/transparent"
android:src="@drawable/ic_delete" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rel_EdtAddedText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_centerInParent="true"
android:orientation="horizontal"/>
</RelativeLayout>
MainActivity.java
private void setAddedEditTextDynamically() {
mRelativeLayoutHolder2.setVisibility(View.GONE);
//create dynamic edit text
RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
final EditText edtAddedText = new EditText(MainActivity.this);
lparams.addRule(RelativeLayout.CENTER_IN_PARENT);
edtAddedText.setLayoutParams(lparams);
edtAddedText.setTextColor(getResources().getColor(R.color.white));
edtAddedText.setGravity(Gravity.CENTER_HORIZONTAL);
// add edittext to rel layout
mRelEdtAddedText.addView(edtAddedText);
mRelEdtAddedText.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
mRelEdtAddedText.setOnTouchListener(new View.OnTouchListener() {
PointF DownPT = new PointF(); // Record Mouse Position When Pressed Down
PointF StartPT = new PointF(); // Record Start Position of 'img'
@Override
public boolean onTouch(View v, MotionEvent event) {
int eid = event.getAction();
switch (eid) {
case MotionEvent.ACTION_MOVE:
PointF mv = new PointF(event.getX() - DownPT.x, event.getY() - DownPT.y);
// mLinMain.setX((int)(StartPT.x+mv.x));
mRelEdtAddedText.setX(10);
mRelEdtAddedText.setY((int) (StartPT.y + mv.y));
StartPT = new PointF(mRelEdtAddedText.getX(), mRelEdtAddedText.getY());
break;
case MotionEvent.ACTION_DOWN:
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF(mRelEdtAddedText.getX(), mRelEdtAddedText.getY());
break;
case MotionEvent.ACTION_UP:
break;
default:
break;
}
return true;
}
});
}