android UI控件小记

1、关于text和drawableTop之类的间距

1 android:drawablePadding="10dp"

2、EditText属性

android:phoneNumber="true"//数字键盘
android:numeric="integer"//数字键盘 android:singleLine="true"//值允许一行 android:maxLength="50" //字数限制 android:typeface="monospace" //设置字型。字形有:normal, sans, serif,monospace android:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕 同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键 android:imeOptions="actionNone" //输入框右侧不带任何提示 android:imeOptions="actionGo" //右下角按键内容为'开始' android:imeOptions="actionSearch" //右下角按键为放大镜图片,搜索 android:imeOptions="actionSend" //右下角按键内容为'发送' android:imeOptions="actionNext" //右下角按键内容为'下一步' android:imeOptions="actionDone" //右下角按键内容为'完成' android:layout_below="@+id/map_poi"
输入法上顶控件时在AndroidManifest.xml里面加上:android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

3、用于RecyclerView的adapter刷新数据,只有把新的数据传到adapter里然后notifyDataSetChanged()就可以了,如果数据很多,当然也有针对单条的数据更改

1 public void refresh(List<Variety> list) {
2         mVarietyList = list;
3         notifyDataSetChanged();//刷新全部数据
4         //notifyItemInserted(1); 新添加一条
5         //notifyItemRemoved(1);删除一条
6     }

4、ImageView图片位置

http://www.cnblogs.com/pandapan/p/4614837.html

5、include,一个布局同时include两次同一个布局时,第二个include的控件的点击响应事件无效

 1 Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.Button 2 3 报这个错时,看看include是否加了width,height 

6、如果滑动里嵌套列表,事件冲突 ,如果列表只是用于显示,最简单的就是把列表控件的事件取消

mRecyclerView.setNestedScrollingEnabled(false);

7、SearchView使用,搜索后由展开到关闭(缩小)

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                //query:输入框内容
                //设置两次setIconified是为了让searchView收缩
                searchView.setIconified(true);//设置一次是清空内容
                searchView.setIconified(true);//缩小
                return false;
            }
            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }
        });

8、RadioButton设置button 的左右位置

android:layoutDirection="rtl"//右  lrt-左

设置文字和button间距 直接设置paddingRight 或者paddingLeft

9、List拼音排序(汉字转拼音库  pinyin4j   TinyPinyin

Collections.sort(list, new Comparator<Bean>() {
            @Override
            public int compare(Bean o1, Bean o2) {
                return o1.getPinYin().compareTo(o2.getPinYin());
            }
        });

10、RecycleView滑动到指定item到顶部

LinearSmoothScroller smoothScroller;
smoothScroller = new LinearSmoothScroller(getActivity()){
            @Override
            protected int getVerticalSnapPreference() {
                return LinearSmoothScroller.SNAP_TO_START;
            }
        };

smoothScroller.setTargetPosition(pos);
recyclerView.getLayoutManager().startSmoothScroll(smoothScroller);

 11.Tablayout 相关

字体大小控制

app:tabTextAppearance="@style/test"
<style name="TabStyle8" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">16sp</item>
 </style>

tab下划线长短控制

颜色如果为黑色需要设置 

app:tabIndicatorColor="#000000"
app:tabIndicator="@drawable/test"

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <item android:gravity="center">
        <shape>
            <size android:height="2dp"
                android:width="30dp"/>
            <solid android:color="#ffffff" />
            <corners android:radius="1dp" />
        </shape>
    </item>
</layer-list>

如果想要动态更改粗细或者颜色可以

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                setTabStyle(tab,Typeface.BOLD);
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                setTabStyle(tab,Typeface.NORMAL);
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });

private void setTabStyle(TabLayout.Tab tab,int style){
        String str = tab.getText().toString();
        SpannableString spannableString = new SpannableString(str);
        StyleSpan styleSpan = new StyleSpan(style);
        spannableString.setSpan(styleSpan,0,str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        tab.setText(spannableString);
    }

 

posted @ 2016-01-26 15:01  西瓜皮不甜  阅读(285)  评论(0编辑  收藏  举报