-
CheckedTextView
替代LineaLayout + TextView + ImageView
构造单选项 -
Chronometer
替代RxJava.interval + TextView
-
StackView
类似Android的多任务的布局 -
QuickContactBadge
图片,点击会自动链接通讯录 -
Space
代替margin,因为onDraw()
方法为空,所以不会渲染,包括事件处理都无效 -
TextClock
时间显示 -
ToggleButton
配合android:button="@drawable/sel"
可以实现Switch
效果//去除右下角小三角图标 quickContactBadge.assignContactFromPhone("13012345678", false) val f = quickContactBadge::class.java.getDeclaredField("mOverlay") f.isAccessible = true f.set(quickContactBadge, null)
-
TextSwitcher
替代ViewFlipper
实现滚动条效果textSwitcher.setFactory { val tv = TextView(this@MainActivity) tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16.0f) tv.setTextColor(Color.RED) return@setFactory tv } textSwitcher.inAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_in); textSwitcher.outAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_out); Observable.interval(1000L, 3000L, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe { textSwitcher.setText((Random().nextInt()).toString()) }
anim_in:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:shareInterpolator="false" android:zAdjustment="top"> <translate android:duration="3000" android:fromYDelta="100%p" android:toYDelta="0"/> </set>
anim_out:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:shareInterpolator="false" android:zAdjustment="top"> <translate android:duration="3000" android:fromYDelta="0" android:toYDelta="-100%p"/> </set>
-
PopupMenu
类似QQ的右上角"+"效果PopupMenu popupMenu = new PopupMenu(Main8Activity.this, view); //view:PopupMenu绑定的view,一般绑定在触发事件按钮 popupMenu.getMenuInflater().inflate(R.menu.popup, popupMenu.getMenu()); //添加menu资源 // 或者popupMenu.inflate(R.menu.popup); popupMenu.setOnMenuItemClickListener(...); //点击事件 popupMenu.setGravity(Gravity.END); //设置显示的位置 popupMenu.show();
需要创建一个menu文件
在res/menu 文件夹下创建一个menu文件,此处menu文件名popup,在inflate方法中引用设置该menu文件
Android新组件应用
最新推荐文章于 2022-12-07 13:47:00 发布