我知道这个问题一直在重复,但是我没有适当的解决方法。
我想使箭头更靠近微调器(这意味着我想减小微调器的宽度并减小文本和向下箭头之间的空间),我使用了默认微调器。我怎样才能做到这一点?请指导我获得解决方案。
这是XML代码
import { takeEvery, select, call, put } from 'redux-saga/effects';
import { LOGIN, AUTHENTICATION_RESULT, AUTHENTICATION_ERROR } from '../actions/user';
const authenticateUser = (email, password) => fetch('apiURL/oauth/token', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: email,
password: password,
grant_type: "password"
}),
});
function* fetchUser(action){
try{
console.log("Email", action.email)
console.log("Password", action.password)
const response = yield call(authenticateUser, action.email, action.password)
const result = yield response.json();
if (result.error) {
yield put({ type: AUTHENTICATION_ERROR, error: result.error });
} else {
yield put({ type: AUTHENTICATION_RESULT, result });
}
}
catch (e) {
yield put({ type: AUTHENTICATION_ERROR, error: e.message });
}
}
export default function* rootSaga() {
yield takeEvery(LOGIN, fetchUser);
}
答案 0 :(得分:0)
由于我了解您的问题,很多时候我们都面临着自定义微调器UI的要求,而要实现这一目标太难了。我通常在以下情况下使用此解决方案:
解决方案::隐藏实际的Spinner
并显示一个TextView
,它看起来像我们想要的Spinner
,请查看下面的图片,以更好地理解:
在上图中,我创建了一个电话号码字段,我正在使用Spinner
从用户那里获取国家代码。我创建了一个TextView
,将文本作为国家/地区代码,并带有下箭头的drawable [right]。请检查以下XML代码以更好地理解:
在上图中,Spinner
的宽度为0dp
,因此您的Spinner
将不可见。 请记住,您必须处理TextView
的点击事件并为performClick()
调用Spinner
方法。。请参考下面的图片以获取此代码:
在您的TextView
的点击事件中,请按照以下方式操作:
textViewLabelCodeRegister.id -> {
spinnerCountriesRegister.performClick()
}
就是这样。
答案 1 :(得分:0)
使用 PopupWindow 代替 Spinner 。