琐碎

  1. 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);  
  1. RadioButton相关问题
    a. 设置RadioGroup下所有radioButton均不可点击
    解决:遍历RadioGroup,radioButton.setEnabled(false);
    b. radioButton不显示前面的按钮
    解决:设为null
    c. radiobutton高度比内容高,有上下边距
    解决:设置最低高度,因为源码设置了minHeight

  2. 获取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);
    }
  1. 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);

资源文件





  1. view.setTag(Object object)的时候报错或者列表中rootView.setTag被覆盖的情况
    解决:如果要添加多个tag的话,就需要先在res/values/ids.xml中添加id,然后在代码中通过R.id.xxx的方式设置或获取tag。

如果你的项目没有ids的文件,请新建一个以ids为名称的xml文件:

//res/values/ids.xml

    
    


//设置tag
tv.setTag(R.id.tag_first, "Hello");
tv.setTag(R.id.tag_second, "Success");

//获取tag(“Hello)
tv.getTag(R.id.tag_first);
  1. webView加载string类型的html数据乱码问题
    乱码:webView.loadData((String) msg.obj, "text/html","UTF-8");
    解决:webView.loadData(str, "text/html; charset=UTF-8", null);

  2. fragment中设置actionBar时,在onCreateView中添加setHasOptionsMenu(true);

  3. 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;
   }
});
  1. activity切换时出现黑屏

    1. startActivity后,使用overridePendingTransition(R.anim.in_from_right,0)启用动画
    2. 在style资源文件中,自定义style
      true
      false
      true、false:第一个activity不动
      true、true:显示桌面
    3. 在manifest清单文件中,为第二个启动的activity添加自定义的style
  2. 代码中LinearLayout动态添加View,只显示第一个
    原因:没有设置orientation

你可能感兴趣的:(琐碎)