在rtl布局中,edittext 指针在Android设备中被破坏。
我有一个支持英语和阿拉伯语的应用程序。因为输入类型编号的编辑文本字段主要是这个问题。在编辑文本字段中输入数字时,指针将分成两半,如图所示。
这是edittext的xml代码。
<EditText
android:id="@+id/et_budget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@drawable/white_background_theme_border"
android:ems="10"
android:gravity="center"
android:hint="@string/choose_budget"
android:inputType="number"
android:padding="15dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColorHint="@android:color/black" />
有人遇到过此问题。是否有相同的修复方法。 提前谢谢。
答案 0 :(得分:2)
你试过这个吗?
<强>布局强>
<EditText>
...
android:gravity="right"
android:textDirection="rtl"
</EdiText>
<强>的AndroidManifest.xml 强>
<application
...
android:supportsRtl="true">
...
</application>
答案 1 :(得分:0)
只需添加此行
即可 android:layoutDirection="ltr"
答案 2 :(得分:0)
不是使用android:inputType="number"
,而是在我的情况下设置android:inputType="phone"
。因为我只想在编辑文本中键入数字。
以下是我的来自xml的EditText:
<EditText
android:layout_gravity="start"
android:textAlignment="viewStart"
android:textDirection="rtl"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:hint="abc"
android:inputType="phone"
android:id="@+id/myNumber"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:background="@android:color/transparent"
android:textColorHint="#767676"
android:backgroundTint="@android:color/transparent"
android:layout_height="fill_parent"
tools:ignore="RtlCompat" />
答案 3 :(得分:0)
import React from "react";
import ReactDOM from "react-dom";
import "./styles.css";
class Counter extends React.Component {
render() {
return (
<div>
<div>{this.props.display}</div>
<button onClick={this.props.fun}>+</button> //onclick not works!!
</div>
);
}
}
class CounterParent extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0 //added
};
}
increase = () => { //not called
this.setState({
count: this.state.count + 1
});
};
render() {
let object = {
display: this.state.count,
func: this.increase
};
return (
<div >
<Counter {...object} />
</div>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<CounterParent />, rootElement);
使文本方向指向所选的一面。如果您输入的是拉丁字符ı强烈建议您使用ltr(阿拉伯语)。但标签是按其性质定位的(例如,阿拉伯语右侧,英语左侧)