随缘三笔

这里是笔记!
这里是笔记!!
这里是笔记!!!


1、保存fragment的状态时:由于我的fragment是配合TabLayout和ViewPager使用的,所以直接设置:

viewpager.setOffscreenPageLimit(x);
//里面参数x是要缓存页面的个数,建议不要设置太大

就可以实现fragment状态的保存,很方便:)


2、有关TextView下划线的设置

textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线

textView.getPaint().setAntiAlias(true);//抗锯齿

textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG); //中划线

setFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG); // 设置中划线并加清晰

textView.getPaint().setFlags(0); // 取消设置的的划线


3、设置Editext让其加载完后不自动获取焦点

//在EditText的父类容器中添加如下属性即可截断EditText自动获取焦点

android:focusable="true"
android:focusableInTouchMode="true"


4、EditText默认全选

android:selectAllOnFocus="true"


5、Fragment需要重写OnAttach方法,将接口对象实例化,同时在Activity要实现对应接口的方法,在该方法中实现你想要的功能,这样就可以由Fragment灵活交互FragmentActivity中的内容与控件了。同理,FragmentActivity想要交互对应的Fragment也需要重写FragmentActivity的OnAttachFragment方法,同时在Fragment中实现对应接口的方法,在该方法中实现你想要的功能,这样就可以由FragmentActivity灵活交互Fragment中的内容与控件了

Fragment中有onAttach方法,对应的Activity必须实现其OnFragmentInteractionListener方法


6、将键盘回车键改成搜索按钮或其他一些按钮

  • xml中配置
//必须设置,不设置不起效
android:singleLine="true"
//设置回车键的样式,有很多可以选择,这里是搜索
android:imeOptions="actionSearch"
  • 监听事件
    edSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
    if (actionId == EditorInfo.IME_ACTION_SEARCH) {
    //操作
    }
    return false;
    }
    });


7

//list倒序
Collections.reverse(inquiryHistories);


8、DrawerLayout中自定义布局的话如果布局中不含listView或者RecyclerVeiw的话会发生点击事件穿透的情况,解决方法:

==在自定义的布局文件中添加clickable=true==


9
获取默认的debug,keystore地址


10

自定义字体

StringUtils.changeFontStyle("fonts/Georgia.ttf", textview);
public static void changeFontStyle(String fontType, TextView tv) {
Typeface custom_font = Typeface.createFromAsset(AndroidApplication.getInstance().getAssets(), fontType);
tv.setTypeface(custom_font);
}


11

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
具有这个标记的Activity不会出现在历史的Activity的列表中,当某些情况下我们不希望用户通过历史列表回到我们的Activity的时候这个标记比较有用。等同于在Manifasts文件中指定Activity的属性==android:excludeFromRecents=”true”==


12

今天在用高德地图的时候发现导航虽然正常调用却一律没有出现语音播报,经过排查发现是armeabi文件夹下少了==libmsc.so==文件,因此导致即使添加了Msc.jar并进行调用也无法出现语音播报的功能。在armeabi文件夹中添加==libmsc.so==文件后重新编译成功出现语音播报。

顺带一提,当使用高德导航sdk时,项目里的libs或jnilibs文件夹下只能保留 armeabi一个这一个文件夹,而且项目中引用了其它的第三方库也只能使用armeabi中的so文件,否则会出现闪退现象。

AndroidStudio中强制只编译armeabi架构文件夹,配置方法如下

 buildTypes {

debug {
ndk {
abiFilters"armeabi"
}
}
}


13
raw和assets目录下的文件打包成apk后不会编译成二进制,会原封不动的存在。

res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。

res/raw不可以有目录结构,而assets则可以有目录结构(在其目录下可以再建文件夹)。

  • 读取raw下的文件资源,通过以下方式获取输入流:

    InputStream is = getResources().openRawResource(R.id.filename);
  • 读取assets下的文件资源,通过以下方式获取输入流:

    InputStream is = getResources().getAssets().open("filename");


14
getColor()过时,使用ContextCompat.getColor(this, R.color.normal_black_color)替代

0%