我正在android上创建一个可拖动的EditText。我把我的editText放在一个相对布局上,我的问题是每当我输入一个长文本它就会转到第二行,即使它没有在相对布局中填充。
这是我的示例布局:
+----------------------------------------------------+
| |
| +----------------+ |
| | This is my text| |
| | in editText | |
| +----------------+ |
| |
| |
| |
+----------------------------------------------------+
这就是我想要实现的目标:
+----------------------------------------------------+
| |
| +----------------------------+ |
| | This is my text in editText| |
| +----------------------------+ |
| |
| |
| |
| |
+----------------------------------------------------+
我希望在转到第二行之前先将整个布局(宽度)中的文本换行。
这是我的代码:
class AddTextTouchListener implements OnClickListener
{
@Override
public void onClick(View view) {
RelativeLayout layout = (RelativeLayout) findViewById(R.id.imgstage);
Context context = getApplicationContext();
EditText imv=new EditText(context);
imv.setText("Sample");
imv.setTextColor(Color.BLACK);
imv.setBackgroundColor(Color.TRANSPARENT);
imv.setCursorVisible(false);
imv.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
imv.setOnLongClickListener(new longClickTextListener());
imv.setEms(10);
imv.setMaxLines(4);
imv.setHorizontallyScrolling(false);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
imv.setLayoutParams(params);
layout.addView(imv);
}
}
这是我的longClickListener能够拖动editText:
class longClickTextListener implements OnLongClickListener
{
@Override
public boolean onLongClick(View view) {
ClipData data = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
view.setVisibility(View.VISIBLE);
lastImageSelected = view;
return true;
}
}
答案 0 :(得分:1)
我的建议是计算编辑文本放置位置的屏幕右侧有多少空间,然后将其设置为编辑文本的宽度。
所以,例如,你想要做这样的事情:
LayoutParams params = new LayoutParams(screenWidth - editTextLeftMargin, LayoutParams.WRAP_CONTENT);
希望这有帮助。
答案 1 :(得分:0)
您的问题是您正在设置
imv.setEms(10); //this sets the width of the EditText remove it
尝试摆脱这一行,因为它告诉布局它想要的宽度。你希望它是动态的,这限制了它。
如果您使用XML文件,这也会更容易。我建议在XML布局文件中构建相同的东西,并找到EditText在动态创建之前需要提取什么设置(仅仅因为布局文件可以轻松拖动内容)。