View控件
Crystal_xing
温不增华,寒不改叶
展开
-
Android: ViewPager+Fragment嵌套的优化
参考如下博客做一个总结:Android开发-ViewPager嵌套Fragment卡顿解决Viewpager滑动重复加载Fragment延迟加载_Mango先生的博客-CSDN博客_android viewpager滑动卡顿首先要明确的是两个基本概念:getFragmentManager()所得到的是所在fragment 的父容器的管理器。getChildFragmentManager()所得到的是在fragment里面子容器的管理器。getFragmentManager..原创 2021-12-17 11:52:08 · 845 阅读 · 0 评论 -
Android: ScrollView嵌套ExpandableListView,ScrollView无法滚动的冲突
解决方案就是写个子类,重写onMeasure方法即可:自定义ExpandableListView的子类:package jp.oikura.app.widgetimport android.content.Contextimport android.util.AttributeSetimport android.widget.ExpandableListViewinternal class CustomNestedExpandableListView : ExpandableL..原创 2021-04-12 11:49:16 · 624 阅读 · 0 评论 -
Android ScrollView嵌套RecyclerView卡顿
卡顿的根本原因其实两个控件的滑动冲突,解决方案:屏蔽RecyclerView的滚动,只依靠ScrollView的滚动,就能提升滑动时候的卡顿: rvTrainComposition.setLayoutManager(new LinearLayoutManager(mActivity){ @Override public boo...原创 2019-09-06 20:37:10 · 279 阅读 · 0 评论 -
Android:bottomSheet效果的下拉拖拽功能总结
效果如动图所示,Android中要对布局中的控件进行自由拖动,一般有两种实现方法:方法1:重写父类点击事件的方法, 对触摸事件进行处理。方法2: 利用ViewDragHelper接管触摸操作来处理触摸事件。 gif图所用的便是方法2。ViewDragHelper提供的callback(ViewDragHelper.Callback)针对 ViewGroup 中的拖拽和重新定位 views 操作时提供了一系列非常有用的方法。下面贴出Demo的核心代码:布局:...原创 2020-10-05 11:29:41 · 955 阅读 · 0 评论 -
Android: RecyclerView item被抢夺焦点
参考:https://blog.csdn.net/wolfking0608/article/details/86539681简单来说:item布局加上requestFocus <TextView android:id="@+id/contact_name" android:layout_width="match_parent" android:layout_height="wrap_con..原创 2020-09-22 14:06:51 · 622 阅读 · 0 评论 -
Android: getItemOffsets设置outRect边距后,每次切换回画面边距增大的问题
override fun getItemOffsets( outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State ) { super.getItemOffsets(outRect, view, parent, state) outRect.set(0, headHeight, 0, 0) } ...原创 2020-09-16 19:52:18 · 1516 阅读 · 0 评论 -
Android: 设置Spinner的下拉高度
原生Spinner只提供了dropDownWidth属性设置下拉布局的宽度,却没有dropDownHeight这种高度属性的设置。找到了好用的解决方案:https://stackoverflow.com/questions/20597584/how-to-limit-the-height-of-spinner-drop-down-view-in-android,用反射的方式找到原生Spinner内部封装的下拉popupWindow,然后设置高度:Java版本: Spinner sp...原创 2020-09-02 10:10:12 · 5224 阅读 · 6 评论 -
Android动态设置ViewPager是否可手指滑动
转载:https://blog.csdn.net/qq_33490141/article/details/82216285重写onTouchEvent和onInterceptTouchEvent即可.注意:这段代码并不是取消了滑动效果,只是拦截了滑动事件,不允许手指滑动,通过setCurrentItem切换时依旧有滑动的动画效果。/** * 自定义ViewPager,可动态设置是否支持滑动 * Created by monty on 2017/8/27. */public cla.转载 2020-08-24 11:59:08 · 269 阅读 · 0 评论 -
Android: 水波纹效果无效(自定义View重写onTouchEvent导致)
解决方案:onTouchEvent回调添加super方法override fun onTouchEvent(event: MotionEvent): Boolean { //XXXXXX 处理逻辑 super.onTouchEvent(event) return true }原创 2020-08-06 09:26:15 · 496 阅读 · 0 评论 -
setContentView和inflate区别
一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这需LayoutInflater动态加载android:id="@+id/tview" android:layout_width="fill_parent" android:layout_height="wrap_content" androi原创 2015-06-01 19:56:46 · 474 阅读 · 1 评论 -
Android 关于inflate
通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件. 因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageView,文字TextV原创 2015-06-01 19:52:03 · 342 阅读 · 0 评论 -
Android开发中的Activity和ActionBarActivity有什么区别
新建项目经常发现继承的是ActionBarActivity,而不是Activity,AndroidBarActivity是支持库里的类可以兼容2.x版本 activity提供的actionbar只有在3.0以上才可以用原创 2015-05-30 11:50:25 · 663 阅读 · 0 评论 -
Android 渐变drawable背景
原文链接:https://www.jianshu.com/p/ec1554c836c3核心代码:<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="0" android:endColor="@android:color/white" androi.转载 2020-07-21 16:40:26 · 394 阅读 · 0 评论 -
Android: DialogFragment设置固定大小
直接在xml中设置固定大小是不好使的,在onCreateView代码设置固定大小也不好使,正确的做法是在onCreateView之后的回调里,用代码设置大小的值: override fun onStart() { super.onStart() val window = dialog?.window if (window != null) { val params = window.attributes ...原创 2020-07-20 18:12:14 · 945 阅读 · 0 评论 -
Android RecyclerView控件列表项布局match_parent属性失效
onCreateView 里match parent失效的写法 View.inflate( context, R.layout.item_part_bottomsheet, null )好用写法: LayoutInflater.from(parent.context) .inflate(R.layout.item_parts_det..原创 2020-07-15 14:30:56 · 437 阅读 · 0 评论 -
Android 手动释放viewpager中的所有fragment
adapter的源码如下,destroyItem回调经过处理,滑动的时候不销毁,viewpager所在界面销毁的时候才让super执行:class FigViewPagerAdapter( fm: FragmentManager?, fragments: List<Fragment>, mtitles: Array<String?>? = null) : FragmentStatePagerAdapter(fm!!) { var mFragm.原创 2020-07-05 18:51:18 · 1294 阅读 · 0 评论 -
Android tint属性无效,不改变颜色
注意是否在vector里设置了android:fillType="evenOdd",有的话把它删掉有问题的代码:<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="12dp" android:height="11dp" android:viewportWidth="12" android:viewportHeight="11"> ...原创 2020-07-03 13:26:30 · 2157 阅读 · 0 评论 -
Android设置drawableleft图片大小
转载自:https://blog.csdn.net/weixin_30512027/article/details/80858429xml没有属性设置从代码里可以Drawable drawable=getResources().getDrawable(R.drawable.ic_phone);drawable.setBounds(0,0,30,35);//第一0是距左边距离,第二0...转载 2018-09-11 17:32:41 · 2641 阅读 · 0 评论 -
RecyclerView 复用item错误positon错乱的解决方法【完美解决】
@Override public int getItemViewType(int position) { return position; }getItemViewType 适配器里面的这个方法返回改为position把 return super.getItemViewType(position);改为return position;其实这个返回的算是一个标识,这个标识我们来定义了,而不是用它们生成的方式。————————...转载 2020-06-30 14:46:15 · 1047 阅读 · 0 评论 -
Android style中增加自定义属性
1. res->value文件夹中添加attr.xml ,写如下自定义属性,名字任意<resources> <declare-styleable name="MyView"> <attr name="buttonPressedColor" format="color" /> </declare-styleable></resources>2. style中添加:<style na..原创 2020-06-16 15:38:52 · 737 阅读 · 0 评论 -
Android Webview加载在线html显示为空
解决方案:dataBinding.webviewDisclaimer.settings.domStorageEnabled = true原创 2020-06-12 10:58:46 · 290 阅读 · 0 评论 -
Android Navigation: XXXDirections类不能自动生成
app的build文件夹中,不能生成XXXDirections类出现这个情况,检查build.gradle(app)中是否引入:apply plugin: "androidx.navigation.safeargs.kotlin"引入之后:成功生成。原创 2020-06-01 16:34:27 · 1074 阅读 · 0 评论 -
Android ViewPager的嵌套+Recycler的滑动联动效果
ViewPager的嵌套+Recycler的滑动联动效果封装,左右滑动的时候会切换到此页画面的下一张图片(翻页的时候与小图Recyclerview列表保持联动),若滑动到最后一张图片之后,再次滑动会迁移到下一个图片画面去显示,效果图如下:将内部简单的ViewPager+Recycler的滑动联动一并抽出封装在Demo中,效果图如下:Demo地址:https://github.com/crystalyf/ViewPagerMatchRecyclerView...原创 2020-05-20 11:46:18 · 607 阅读 · 0 评论 -
Android 横竖屏切换布局
拿Fragment记录,在OnCreateView中: int orientation = getResources().getConfiguration().orientation; int layout = 0; if (orientation == Configuration.ORIENTATION_PORTRAIT) { layout = R.layout.fragment_image; } e.原创 2020-05-19 15:13:20 · 287 阅读 · 0 评论 -
Android frameLayout设置高度match parent
frameLayout在xml中高度设置match parent是无效的,必须要在代码中进行动态设置,代码的方式获取高度然后set: fl_child = view.findViewById(R.id.fl_child); Resources resources = this.getResources(); int childViewHeight = resources.getDisplayMetrics().heightPixels; fl_ch.原创 2020-05-15 15:36:47 · 1822 阅读 · 1 评论