Android studio学习之路(更新中)

1、快速添加try catch

选择要包裹的代码块,然后按下Ctrl +alt+t就可以调出下边这个键,进行选择即

2、什么是方法签名

方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
3、为什么我导入的图片在design模式下看不到但在虚拟机能看到?
android studio卡了,退出重登即可(多喝热水,重启试试)
4、CollapsingToolbarLayout控件的XML属性:
  • app:collapsedTitleGravity=”“属性:在折叠的时候指定标题的位置,提供值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizental、center、start、end,对应的JAVA方法是:setExpandedTitleGravity(int)

  • app:collapsedTitleTextAppearance=”“属性:设置折叠的时候标题栏文字外观,对应的JAVA方法是:setCollapsedTitleTextAppearance(int)

  • app:contentScrim=”“属性:设置当被滚出屏幕时候CollapsingToolbarLayout的样式,需要是一个颜色值,对应JAVA方法是:setContentScrimResource(int)

  • app:expandedTitleGravity=”“属性:布局没有折叠的时候标题栏的位置,提供的值与app:collapsedTitleGravity=”“属性一样,设置多个值得时候用“|”分割,对应Java方法是:setExpandedTitleGravity(int)

  • app:expandedTitleMargin=”“属性 、app:expandedTitleMarginBottom=”“属性、app:expandedTitleMarginEnd=”“属性、app:expandedTitleMarginStart=”“属性、app:expandedTitleMarginTop=”“属性,这5个属性都是设置margin值得,不需要多说了。

  • app:expandedTitleTextAppearance=”“属性:这个属性跟app:collapsedTitleTextAppearance=”“属性对应,是设置展开的时候标题栏文本的外观,对应的Java方法是:setExpandedTitleTextAppearance(int)

  • app:statusBarScrim=”“属性:具体的功能上面描述过了,对应Java方法是:setStatusBarScrimResource(int)

  • app:title=”“属性:设置标题,对应Java方法是:setTitle(CharSequence)

  • app:titleEnabled=”“属性:设置是否显示标题,对应Java方法是:setTitleEnabled(boolean)

  • app:toolbarId=”“属性:设置toolbarid。

5、Fragment+viewpager+tablayout实现多页面滑动

//fragments为Fragment类型的ArrayList
mFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),fragments);
mViewPager.setAdapter(mFragmentPagerAdapter);
mTabLayout.setupWithViewPager(mViewPager,false);
6、 Fragment+viewpager+tablayout滑动时没有回弹效果

  fragment的布局没有加载或根本就没写fragment的布局

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view=inflater.inflate(R.layout.fragment_test1,null);
    return view;
}

7、Fragment重写有参构造报错

需要在Fragment的构造函数前加上@SuppressLint("ValidFragment")来忽略此警告

因为Fragment源码中只存在默认无参构造


8、判断网络状态(来源:i西科)

有网络返回true,无网络返回false,还需要在AndroidManifest中添加权限

public class NetState {
    public static boolean isNetworkAvailable(Context paramContext) {
        ConnectivityManager localConnectivityManager = (ConnectivityManager)paramContext.getSystemService(paramContext.CONNECTIVITY_SERVICE);
        if(localConnectivityManager != null) {
            NetworkInfo[] arrayOfNetworkInfo = localConnectivityManager.getAllNetworkInfo();
            if(arrayOfNetworkInfo != null) {
                int j = arrayOfNetworkInfo.length;

                for(int k = 0; k < j; ++k) {
                    if(arrayOfNetworkInfo[k].getState() == NetworkInfo.State.CONNECTED
                            && !arrayOfNetworkInfo[k].getTypeName().equals("VPN")) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
}

9、Parcelable接口

通过writeToParcel将你的对象映射成Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象。也可以将Parcel看成是一个流,通过writeToParcel把对象写到流里面,在通过createFromParcel从流里读取对象.(侵删)

10、Android开发中的Bean目录是干什么用的(来源:iWeather)

在Android开发中,使用Bean类的目的是从网络获取数据,用Bean类中的数据填充UI界面中的控件。javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的getXXX/setXXX方法,JavaBean是一种JAVA语言写成的可重用组件。所以,我们一般利用bean类来存放一些特定的属性或行为,而不存放值,这样我们就能多次调用bean类中的属性并赋值使用,实现重复使用的功能。


11、mipmap 目录和drawable 目录有什么区别

mipmap系统会在缩放上提供一定的性能优化!!!!!!(这点非常重要)

12、Execution failed for task ':app:preDebugAndroidTestBuild报错

具体报错内容如下:

Error:Execution failed for task ‘:app:preDebugAndroidTestBuild’. 

Conflict with dependency ‘com.android.support:support-annotations’ in project ‘:app’. Resolved versions for app (22.1.0) and test app (25.4.0) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

原因:好像是dependency的版本冲突 

原因:好像是dependency的版本冲突(但我没改.build中的compileSdkVersion,我也很无奈啊

解决方法:Rebuild Project

13、LinearLayout的坑

LinearLayout的orientation属性如果设置为vertical,那么子控件的gravity属性就无法设置为“top”或者“bottom”时会无效

如果设置为horizontal,那么子控件的gravity属性设置为“left”或者“right”时会无效



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值