anroid 5.0 Design v7 包中引用了TabLayout 简单快速的写出属于自己的Tab切换效果 如图所示:
但是正常使用中你发现无法设置tablayout指示器的宽度。查看源码你会发现设计师将指示器的宽度设置成TabView最大的宽度。并且设计师并没有给我们暴漏出接口,这导致有时使用TabLayout无法满足一些产品设计要求,这么好的组件无法使用还需要自定义费时费力。这个时候我们可以通过反射机制拿到TabLayout中的指示器对象对它的宽度进行处理就可以满足我们的要求:具体代码如下
重写 onMeasure方法
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int dp10 = CommUitls.dip2px(context, 10); LinearLayout mTabStrip = (LinearLayout) this.getChildAt(0); try { Field mTabs = TabLayout.class.getDeclaredField("mTabs"); mTabs.setAccessible(true); ArrayList<Tab> tabs = (ArrayList<Tab>) mTabs.get(this); for (int i = 0; i < mTabStrip.getChildCount(); i++) { Tab tab = tabs.get(i); Field mView = tab.getClass().getDeclaredField("mView"); mView.setAccessible(true); Object tabView = mView.get(tab); Field mTextView = context.getClassLoader().loadClass("android.support.design.widget.TabLayout$TabView").getDeclaredField("mTextView"); mTextView.setAccessible(true); TextView textView = (TextView) mTextView.get(tabView); float textWidth = textView.getPaint().measureText(textView.getText().toString()); View child = mTabStrip.getChildAt(i); child.setPadding(0, 0, 0, 0); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int) textWidth, LinearLayout.LayoutParams.MATCH_PARENT); params.leftMargin = dp10; params.rightMargin = dp10; child.setLayoutParams(params); child.invalidate(); } } catch (Exception e) { e.printStackTrace(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍jQuery设置指定网页元素宽度和高度的方法,包括了jQuery设置指定网页元素宽度和高度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery设置指定网页元素宽度和高度的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的jQuery程序设计有所帮助。
问题内容: 我的元素: 风格: 脚本,使其保持方形: 问题是要在纯CSS中做同样的事情。没有脚本。 问题答案: 我知道有两种技术可以根据元素的高度保持元素的长宽比: 当 高度相对于视口时 : 您可以使用vh单位: 对于 基于父元素的高度的高度 : 您可以使用具有所需纵横比的虚拟图像。宽高比为1:1的示例可以使用1 * 1透明.png图像,也可以使用@vlgalik注释为1 * 1 base64编码
我需要制作某种表格,在其中存储简单的区域节点(之后我会在上面做其他事情——比如水平移动单元格并给它们其他属性,例如标签)表格将有很多列, 这是我生成该表的部分代码。 这是我在屏幕上得到的输出。正如你所观察到的,一些网格是紧粒度的,而另一些网格则是紧粒度的 你知道为什么它是错误的,以及如何修复它吗? 附言:这是我在这里的第一个帖子,我希望我做的一切都是对的;)
问题内容: 如何通过ImageView编程设置的宽度和高度? 问题答案: 设置ImageView的高度可能为时已晚,但是为了其他有相同问题的人: 希望这可以帮助。 重要。如果要在布局已经“布局”之后设置高度,请确保还调用:
问题内容: 您可以设置诸如,和的内联元素的宽度,但是在放置它们之前不会发现任何效果。 a)我认为不能设置内联元素的内联宽度? b)假设可以设置宽度-在放置内联元素之前,我们不会注意到任何效果(因此我们指定了宽度)。位置如何/在哪里? c)为什么仅当我们“定位”内联元素时才显示它们的宽度? 问题答案: 正如其他人提到的那样,设置内联元素的宽度(或其他一些与位置相关的属性)将导致浏览器将元素显示为块元
问题内容: 简单方案: 我需要为设置一个固定宽度。我试过了: 也 对于 乃至 但是的宽度仍然相同。 问题答案: 对于Bootstrap 4.0: 在Bootstrap4.0.0中,您不能可靠地使用这些类(在Firefox中有效,但在Chrome中不适用)。您需要使用OhadR的答案: 对于Bootstrap 3.0: 在twitter bootstrap 3中使用:其中*是宽度的列数。 对于Boo