- Textview相关
TextView.setCompoundDrawables(left, top, right, bottom)不显示图片
改用:TextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
代码中设置字体颜色selector,直接使用tv.setTextColor(resId)发现颜色不变
改用:
ColorStateList csl = getResources().getColorStateList(resId);
tv.setTextColor(csl);
-
RadioButton相关问题
a. 设置RadioGroup下所有radioButton均不可点击
解决:遍历RadioGroup,radioButton.setEnabled(false);
b. radioButton不显示前面的按钮
解决:设为null
c. radiobutton高度比内容高,有上下边距
解决:设置最低高度,因为源码设置了minHeight -
获取drawable文件夹下图片的uri
/**
* 得到资源文件中图片的Uri
* @param id 资源id
* @return Uri
*/
Resources mResources;
public static Uri getUriFromDrawableRes(@DrawableRes int id) {
String path = ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+ mResources.getResourcePackageName(id) + "/"
+ mResources.getResourceTypeName(id) + "/"
+ mResources.getResourceEntryName(id);
return Uri.parse(path);
}
- TabLayout 选中的文字加粗
//监听一定要在setupWithViewPager方法之前添加,否则会有bug
mOrderTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
View view = tab.getCustomView();
if (null == view) {
tab.setCustomView(R.layout.order_tab_text);
}
TextView textView = tab.getCustomView()
.findViewById(R.id.order_tab_text);
textView.setTextColor(ResUtil.getColor(R.color.common_text_dark_363c54));
textView.setTypeface(Typeface.DEFAULT_BOLD);
textView.setText(tab.getText());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View view = tab.getCustomView();
if (null == view) {
tab.setCustomView(R.layout.order_tab_text);
}
TextView textView = tab.getCustomView()
.findViewById(R.id.order_tab_text);
textView.setTextColor(ResUtil.getColor(R.color.common_text_normal_9b9da9));
textView.setTypeface(Typeface.DEFAULT);
textView.setText(tab.getText());
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
mOrderTab.setupWithViewPager(mOrderListVp);
资源文件
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/order_tab_text"
android:textSize="@dimen/common_title_text_size_13"
android:gravity="center">
</TextView>
- view.setTag(Object object)的时候报错或者列表中rootView.setTag被覆盖的情况
解决:如果要添加多个tag的话,就需要先在res/values/ids.xml中添加id,然后在代码中通过R.id.xxx的方式设置或获取tag。
如果你的项目没有ids的文件,请新建一个以ids为名称的xml文件:
//res/values/ids.xml
<resources>
<item type="id" name="tag_first"></item>
<item type="id" name="tag_second"></item>
</resources>
//设置tag
tv.setTag(R.id.tag_first, "Hello");
tv.setTag(R.id.tag_second, "Success");
//获取tag(“Hello)
tv.getTag(R.id.tag_first);
-
webView加载string类型的html数据乱码问题
乱码:webView.loadData((String) msg.obj, "text/html","UTF-8");
解决:webView.loadData(str, "text/html; charset=UTF-8", null); -
fragment中设置actionBar时,在onCreateView中添加setHasOptionsMenu(true);
-
EditText相关
EditText输入内容的事件监听 editText.setOnEditorActionListener
将软键盘的回车键写为“搜索” android:imeOptions="actionSearch"
键盘弹出时遮盖布局而不是挤布局 android:windowSoftInputMode="adjustPan|stateHidden"
键盘弹出时挤布局而不是遮盖布局 android:windowSoftInputMode="stateVisible|adjustResize"
弹出数字键盘 editText.setInputType(EditorInfo.TYPE_CLASS_PHONE);
键盘的弹出/隐藏(弹出时隐藏,隐藏时弹出)
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
隐藏软键盘:
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(editText.getWindowToken(), 0);
eg:
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode()==KeyEvent.KEYCODE_ENTER) {
//按回车键或搜索键时执行的操作
}
return true;
}
});
-
activity切换时出现黑屏
- startActivity后,使用overridePendingTransition(R.anim.in_from_right,0)启用动画
- 在style资源文件中,自定义style
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowShowWallpaper">false</item>
true、false:第一个activity不动
true、true:显示桌面 - 在manifest清单文件中,为第二个启动的activity添加自定义的style
-
代码中LinearLayout动态添加View,只显示第一个
原因:没有设置orientation
网友评论