Java 动态调整Android Studio文本视图的大小
我正在尝试使用Java代码动态调整文本框的大小。我希望宽度不使用包装内容,而是在dp中使用静态数字。我希望这是在Java代码中完成的,而不是XML文件。我希望它是这样的,因为我想将它应用到recyclerview中的每个项目。它需要使用多个屏幕尺寸。它的工作原理类似于文本框大小的最小长度。如果您知道如何执行此操作,将非常方便。这称为自动调整大小,可以通过添加TextChangedListener来完成,它是编辑文本的侦听器。此侦听器监视editText的更改,并具有三种不同的状态。您还可以创建一个组件(自定义视图),并根据需要从AppCompatTextView名称扩展它;在其初始化中,您可以添加以下代码:Java 动态调整Android Studio文本视图的大小,java,android,xml,dynamic,Java,Android,Xml,Dynamic,我正在尝试使用Java代码动态调整文本框的大小。我希望宽度不使用包装内容,而是在dp中使用静态数字。我希望这是在Java代码中完成的,而不是XML文件。我希望它是这样的,因为我想将它应用到recyclerview中的每个项目。它需要使用多个屏幕尺寸。它的工作原理类似于文本框大小的最小长度。如果您知道如何执行此操作,将非常方便。这称为自动调整大小,可以通过添加TextChangedListener来完成,它是编辑文本的侦听器。此侦听器监视editText的更改,并具有三种不同的状态。您还可以创建一
public class CustomTextView extends AppCompatTextView {
Context ctx;
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
ctx = context;
init();
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
ctx = context;
init();
}
public CustomTextView(Context context) {
super(context);
ctx = context;
init();
}
public void init() {
setOnTouchListener(null);
addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (getText().toString().length() > 10){
setTextSize(TypedValue.COMPLEX_UNIT_SP, textSizeSmall);
}
else if (getText().toString().length() > 5){
setTextSize(TypedValue.COMPLEX_UNIT_SP, textSizeMedium);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
此外,还可以查看这些文档,其中有一个文档提示:
我想这会对你有帮助
LinearLayout.LayoutParams textParam = new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
textView.setLayoutParams(textParam);
这回答了你的问题吗?