泰兴网站建设开发,网页创意设计,多功能响应式wordpress主题,郑州网站建设易云巢介绍
公司组织架构调整#xff0c;项目组需要承接其他项目组的android项目#xff0c;负责维护和开发新需求#xff0c;故学习下基础语法和项目开发。
组件学习
Toolbarheader布局部分
就是app最顶部的部分 他的显示与否#xff0c;是与F:\androidProject\android_lear…介绍
公司组织架构调整项目组需要承接其他项目组的android项目负责维护和开发新需求故学习下基础语法和项目开发。
组件学习
Toolbarheader布局部分
就是app最顶部的部分 他的显示与否是与F:\androidProject\android_learn\demo1\app\src\main\res\values\styles.xml这个文件相关的。
resources!-- Base application theme. --style nameAppTheme parentTheme.AppCompat.Light.DarkActionBar!-- Customize your theme here. --item namecolorPrimarycolor/colorPrimary/itemitem namecolorPrimaryDarkcolor/colorPrimaryDark/itemitem namecolorAccentcolor/colorAccent/item/style/resources
与DarkActionBar这个属性相关默认就是自带的如果想要取消可以设置NoActionBar来解决
parentTheme.AppCompat.Light.NoActionBar
设置之后的效果 我们不要android自带的ToolBar我们可以自己用androidx写一个为什么要替换可以更加灵活的去修改。
androidx.appcompat.widget.Toolbarandroid:idid/toolbar1app:navigationIcondrawable/ic_arrow_back_black_24dpandroid:layout_widthmatch_parentandroid:background#ffff00app:title标题app:titleMarginStart90dpapp:subtitle子标题app:subtitleTextColor#00ffffapp:logodrawable/ic_android_black_24dpandroid:layout_height?attr/actionBarSize/
效果如下 给要点击的返回按钮添加事件
Toolbar toolbar1 findViewById(R.id.toolbar1);
toolbar1.setNavigationOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View view) {Log.e(pshdhx,返回按钮被点击了);}
}); 如何让toolbar的标题居中
androidx.appcompat.widget.Toolbarandroid:idid/toolbar2app:navigationIcondrawable/ic_arrow_back_black_24dpandroid:layout_widthmatch_parentandroid:background#ffff00app:subtitleTextColor#00ffffapp:logodrawable/ic_android_black_24dpandroid:layout_height?attr/actionBarSizeTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:layout_gravitycenterandroid:text标题/
/androidx.appcompat.widget.Toolbar
使用这个属性即可但是android studio没有提示。android:layout_gravitycenter AlertDialogalertconfirm
//相当于web中的Confirm或者是alert
public void putDialogAlert(View view) {AlertDialog.Builder builder new AlertDialog.Builder(this);builder.setIcon(R.mipmap.ic_launcher).setTitle(alert对话框).setMessage(你确定要xxx吗).setPositiveButton(确定, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialogInterface, int i) {Log.e(pansd,onClick点击了确定);}}).setNegativeButton(取消, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialogInterface, int i) {Log.e(pansd,onClick点击了取消);}}).setNeutralButton(中间, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialogInterface, int i) {Log.e(pansd,onClick点击了中间);}}).create().show();
} 效果如下 设置布局
View dialog_view getLayoutInflater().inflate(R.layout.dialog_view,null); xxx.setView(dialog_view);
新的布局文件
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:background#00ff00android:orientationhorizontalImageViewandroid:srcmipmap/ic_launcherandroid:layout_widthwrap_contentandroid:layout_heightwrap_content/TextViewandroid:textAndroidandroid:layout_widthwrap_contentandroid:layout_heightwrap_content//LinearLayout 添加布局后的对话框组件里边嵌入了一个layout popupWindowdialog
相当于一个Dialog显示在界面的正上方 ?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:backgroundmipmap/ic_launcherandroid:orientationverticalButtonandroid:idid/shanghaiandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:padding5dpandroid:text上海android:textSize18dp/Buttonandroid:idid/beijingandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:padding5dpandroid:text北京android:textSize18dp//LinearLayout public void putpopupWindow(View view) {View popupView getLayoutInflater().inflate(R.layout.popup_view, null);PopupWindow popupWindow new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,true);popupWindow.showAsDropDown(view,10,10);
} 点击按钮显示点击空白处小时相当于一个Dialog弹窗。
给弹窗设置背景色 //给弹窗设置背景色 popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.cat));
点击弹窗里边的按钮并且点击之后让popupWindow退出
View beijingBtn popupView.findViewById(R.id.beijing);
beijingBtn.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {Log.e(pansd,点击了popupWindow中北京的按钮);popupWindow.dismiss();}
}); 布局
LinearLayout
android:gravitycenter_horizontal|bottom
子组件水平方向上居中然后放置到bottom底侧
android:layout_gravitycenter 如果父组件是vertical那么该子组件只能控制水平方向的这一块内容。
设置元素之间的分割线
android:dividerdrawable/divider 设置分割线的图片 【可以直接使用linearlayout 高度1dp来设置分割线】
android:showDividersmiddle 在中间显示分割线
android:dividerPadding100dp 设置分割线和左右边框的距离
android:layout_weight1 该组件把剩余的空间分配如果别的也是1那么各分50%的剩余空间。但是如果出现了match_parent的情况权重需要根据实际情况计算。所以权重设置的时候直接设置高度为0即可按照比例分割。
RelativeLayout 相对布局一定需要定位。要不然都上下层贴到一块了。
FrameLayout
从父容器的左上角开始布局每次都绘制在当前图层的上一层。 还有一个属性
android:foregrounddrawable/ceshi1
android:foregroundGravityright|bottom
设置当前图层的前景色就是图层的上边添加一张图片放置在右下角。
TableLayout
如果在该布局下直接写组件那么写的组件会占用一整行。两个组件就是占用两行。
如果要仅仅使用一行呢需要使用TableRow
如果一行超过了屏幕的显示范围那么不显示。 不能把两行进行一个合并只能把两列进行一个合并。
GridLayout ConstraintLayout
就是新建项目时的默认的布局在Design中拖动组件的圆点布局。