Articles of android layout

Android Studio:XML布局中的’wrap in container’

在编辑XML布局文件时,Eclipse有一个名为“wrap in container”的function(重新格式化 – > Android – > …),它允许您选择一个或多个视图并在其周围包装您选择的布局。 Android Studio中有类似的东西吗?

Spinner项目的自定义布局

我在警告对话框中有一个微调器。 我想减少微调器项之间的填充,因此我实现了以下内容: spinner_row.xml 活动代码包含以下内容 spinner= (Spinner) dialog.findViewById(R.id.spinner); String arr[] = { “1”, “2”, “3” }; ArrayAdapter adapter = new ArrayAdapter( CameraActivity.this, R.layout.spinner_row, R.id.tvCust,arr); spinner.setAdapter(adapter); 现在您可以在下面的屏幕截图中看到,单选按钮显示在spinner上,它实际上是spinner_row.xml的一部分。 请注意,textview宽度为200dp,而微调器的长度仅为130dp,因此不应在微调器上显示单选按钮。 我该如何删除它? 此外,当我单击任何微调器项目时,微调器popup窗口不会按预期消失。(注意在微调器项目列表中检查所有3个checkbox)。 在单击项目时不会调用setOnItemSelectedListener 。 任何帮助赞赏。 编辑1 根据farrukh的建议,我尝试了他的代码,结果就是以下。

使用剪切来修复ViewGroup的圆角

我有一个RelativeLayout需要圆角左上角和右上角。 我可以使用XML定义的可绘制背景来实现这一点,其中包含角topLeftRadius和topRightRadius。 但是……这个RelativeLayout还需要一个背景,它是一个带有平铺位图和形状组合的图层列表,并且平铺位图在可绘制XML中没有一个角参数。 所以我的想法是使用以下代码创建RelativeLayout : @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); path.reset(); rect.set(0, 0, w, h); path.addRoundRect(rect, radius, radius, Path.Direction.CW); path.close(); } @Override protected void dispatchDraw(Canvas canvas) { int save = canvas.save(); canvas.clipPath(path); super.dispatchDraw(canvas); canvas.restoreToCount(save); } 可悲的是没有剪辑发生,我期待它剪辑我的RelativeLayout的所有四个角落,但没有发生任何事情。 “onSizeChanged”和“dispatchDraw”方法都被调用,我测试过。 我也试图关闭硬件加速,但它没有做任何事情。 我的RelativeLayout是更大布局的一部分,并且该布局在FrameLayout的子类中膨胀,然后该子类在RecyclerView使用一行,如果它改变了什么。

禁用ActionBar RTL方向

Android 4.2引入了RTL(BiDi)支持,开始使用它我只需按照说明(android:supportsRtl属性到清单文件中的元素并将其设置为“true”) 但是,我的ActionBar徽标也会改变方向(右侧显示徽标),这是我不想要的。 我确实想使用RTLfunction,但将ActionBar保持在左侧… 换句话说,当语言方向为RTL时,如何使用android:supportsRtl属性而不更改Android 4.2上的ActionBar方向 有什么建议么 ?

layout_height =“0dp”是什么意思?

我看了很多使用layout_height =“0dp”的地方。 有人能告诉我这是什么意思吗? 我试着查看android开发人员文档,但没有在那里find相关信息。 谢谢。

处理UI事件的最佳实践

我已经在OnCreate()上放置了UI事件的所有绑定代码。 它使我的OnCreate()变得庞大。 在android中实现UI事件是否存在模式? 我可以在View xml文件中添加方法,然后我可以将所有处理程序代码放在其他位置。 简而言之,我想我问我如何用android应用程序代码实现MVVM模式?

什么是非嵌入式活动,为什么android:fitsSystemWindows不能在其中工作?

我正在尝试在视图上使用android:fitsSystemWindows属性,以便它不被我的半透明导航栏阻止,但它没有做任何事情。 关于它的Android文档说fitsSystemWindows “只有在这个视图处于非嵌入式活动时才会生效。” 什么是嵌入式活动? 我可能会偶然创建一个吗? 是否有可能将fitsSystemWindows的效果合二为一?

如何在android中将Switch文本更改为右侧?

Android默认Switch有文本,然后Switch /关闭。 我期待打开/关闭然后发短信。 不要使用像TextView这样的其他小部件。 如何设置Switch右侧文本。

第一次打开应用程序时的Android说明?

你知道吗 好吧,我想创建像这个屏幕的东西。 当我第一次打开应用程序时,我想打开这个屏幕并显示一个上下文..怎么可能? 我不知道是什么搜索这种types的东西..

MediaController定位 – 绑定到VideoView

关于如何定位MediaController的讨论很多,大多数答案都是使用setAnchorView 。 乍一看这个解决方案似乎有效但在我的情况下却没有。 根据这篇文章, setAnchorView仅作为MediaController初始定位的参考,但实际上在顶部创建了一个新的浮动Window 。 所以我想要的是一个真正绑定到父View (例如VideoView)的MediaController 。 例如,如果您在ScrollView有一个LinearLayout ,并且您必须向下滚动到MediaController所连接的VideoView , MediaController应该真正附加到此VideoView以便MediaController与VideoView一起滚动。 这里讨论了这个问题困扰的另一个用例,其中MediaController在ViewPager 。 那么如何为MediaController实现这样的行为呢?