我使用的是 EditText,当用户执行某些操作(将其视为聊天窗口)时,以编程方式填充文本。现在,当文本填满整个窗口时,会出现一个滚动条,但用户必须手动滚动它才能看到最新的聊天记录(在底部)。能不能自动滚动到最新的聊天记录?PS:我使用的是 EditText 而不是 ScrollView
当我单击 Edittext 时,我在此 XML 文件中使用以下 XML 文件,键盘与编辑文本重叠
XML:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/blue_bg"
>
<!-- Menu Panel -->
<RelativeLayout
android:id="@+id/menuPanel"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="right"
android:background="#52555a"
android:orientation="vertical" >
<TextView
android:id="@+id/menu_title_1"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="0dp"
android:paddingLeft="15dp"
android:gravity="center_vertical"
android:background="#353535"
android:textColor="@android:color/white"
android:text="@string/menu_title">
</TextView>
<View
android:id="@+id/menu_item_divider_1"
android:layout_width="fill_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_below="@+id/menu_title_1"
android:background="#b5b5b5"/>
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/menu_item_divider_1"
android:dividerHeight="1dp"
android:id="@+id/list"
></ListView>
</RelativeLayout>
<!-- Sliding Panel -->
<LinearLayout
android:id="@+id/slidingPanel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:gravity="left"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@drawable/file" >
<View
android:id="@+id/header_vertical_divider_1"
android:layout_width="2dp"
android:layout_height="fill_parent" …Run Code Online (Sandbox Code Playgroud) 我知道您可以通过 text.split("\n") 拆分字符串,但这不适用于自动换行。还有什么办法吗?
你好,我有一个 xml,其中我有 2 个编辑文本和列表视图,当我单击编辑文本键盘时会出现但编辑文本会隐藏我想在键盘出现时将它们向上推我尝试了所有解决方案但没有人在我的情况下工作我做了 adjustpan 和 adjustresize两者但不能完成我的任务下面是我的xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scnanningscreen_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ToggleButton
android:id="@+id/onoff_switch"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp" />
<ImageView
android:id="@+id/qrcode_img"
android:layout_width="150dp"
android:layout_height="200dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="24dp"
android:src="@drawable/ab_bottom_solid_tabsstyle"
android:visibility="invisible"
/>
<TextView
android:id="@+id/txtscannerstatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/qrcode_img"
android:layout_alignParentLeft="true"
android:layout_marginBottom="21dp"
android:layout_marginLeft="16dp"
android:text="Scanner Status:"
android:textSize="20sp" />
<EditText
android:id="@+id/etxtrunner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/txtrunner"
android:layout_alignBottom="@+id/txtrunner"
android:layout_alignRight="@+id/qrcode_img"
android:layout_alignParentRight="true"
android:background="@drawable/editbox_roundedcorner"
android:ems="10"
android:layout_margin="8dp"
android:imeOptions="actionNext"
android:singleLine="true"
android:minHeight="30dp" />
<EditText
android:id="@+id/etxtposition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/txtposition"
android:layout_alignBottom="@+id/txtposition"
android:layout_alignLeft="@+id/etxtrunner"
android:background="@drawable/editbox_roundedcorner"
android:ems="10"
android:imeOptions="actionDone"
android:inputType="number"
android:singleLine="true"
android:minHeight="30dp" >
</EditText>
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="110dp"
android:layout_height="178dp"
android:layout_alignParentRight="true"
android:layout_marginRight="7dp" …Run Code Online (Sandbox Code Playgroud) android android-layout android-softkeyboard android-listview android-edittext
搜索列表适配器.java
使用 EditText 实现可过滤的 RecyclerView 列表搜索不起作用。请查看此代码。在我的情况下,列表被过滤,但 recyclerView 适配器没有改变,因为列表保持不变。
/**
* Created by Dell on 4/8/2016.
*/
public class SearchListAdapter extends RecyclerView.Adapter<SearchListAdapter.ViewHolder> implements Filterable {
private Context context;
public static ArrayList<ChapterListModel> chapterList;
private List<ChapterListModel> orignalChapterList = new ArrayList<>();
private final List<ChapterListModel> filteredChapterList;
public SearchListAdapter(Context context, ArrayList<ChapterListModel> chapterList) {
this.context = context;
this.chapterList = chapterList;
orignalChapterList = chapterList;
filteredChapterList = new ArrayList<>();
}
@Override
public SearchListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row_chapter_list, parent, false)
);
}
@Override
public void …Run Code Online (Sandbox Code Playgroud) search android filtering android-edittext android-recyclerview
所以一段时间以来,我一直在尝试解决 EditText 字段的问题,因为它没有显示提示或实际文本所在的单行。通常情况下,这条线默认是黑色的,所以我的问题是这样的;如何使线条再次显示,以及如何更改它的颜色?(我认为 android:backgroundHint 可以解决问题,但是我根本看不到该行,因此无法对其进行测试)。我正在使用 API 24/25。
下面是我的 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/activity_register"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.michael.whatsupldn.RegisterActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"
android:layout_margin="16dp"/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我的styles.xml 代码
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="EditTextTheme">
<!-- Used for the bottom line when not selected / focused -->
<item name="colorControlNormal">#FAFAFA</item>
<!-- colorControlActivated & colorControlHighlight use the …Run Code Online (Sandbox Code Playgroud) 这里是 4EditText用于输入数字密码。我希望它是这样的,如果第一个EditText由 1 个数字填充,那么焦点应该转到下一个EditText并且也应该以相反的方式工作。这样用户就可以继续从最左边输入密码,也可以从最右边以同样的方式擦除。
有人可以建议什么是最好的方法吗?
android android-layout android-input-method android-edittext
我的布局中有一堆 TextInputEditText,定义如下:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/confirmPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/registration_confirm_password"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
当用户尝试提交表单时,我有一个验证方法来检查每个字段并在无效字段上设置错误,如下所示:
if(confirmPassword.text.toString() != password.text.toString()) {
confirmPassword.error = "Passwords don't match"
confirmPassword.setOnKeyListener { _, _, _ ->
confirmPassword.error = null
true
}
valid = false
}
Run Code Online (Sandbox Code Playgroud)
一旦用户开始纠正他的错误,OnKeyListener 就会立即消除错误。
这段代码在我的模拟器和我的 Android 5.1.1 设备上完美运行。但是在我的一个用户的设备上,三星 Galaxy S6 Edge 和 Android 6.0,当他犯了一个错误并且一个字段上有错误时,他不能再编辑它了。
我使用 TextInputEditText 错了吗?这是一个已知的错误吗?有解决方法吗?
我需要为 TextView 中的文本使用自定义下划线。我使用 ReplacementSpan 来做到这一点。但它会在第一行的末尾剪切文本。
这是我的CustomUnderlineSpan课:
public class CustomUnderlineSpan extends ReplacementSpan {
private int underlineColor;
private int textColor;
public CustomUnderlineSpan(int underlineColor, int textColor) {
super();
this.underlineColor = underlineColor;
this.textColor = textColor;
}
@Override
public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
paint.setStrokeWidth(3F);
paint.setColor(textColor);
canvas.drawText(text, start, end, x, y, paint);
paint.setColor(underlineColor);
int length = (int) paint.measureText(text.subSequence(start, end).toString());
canvas.drawLine(x, bottom, length + x, bottom, paint);
}
@Override …Run Code Online (Sandbox Code Playgroud)