Articles of android layout

滚动感知FAB隐藏,但随后不再出现

我制作了一个带有recyclerview和floating action button的Android应用程序。 向下滚动时,按钮应隐藏,向上滚动时应再次显示。 我已经使用本教程来实现该行为。 结果是,当我向下滚动时FAB隐藏,但是当向上滚动时它不会再次出现:(类ScrollAwareFABBehavior与教程相同。但我使用的是嵌套布局。 这是我的布局( recyclerview位于content_main的LinearLayout中):

layout_below项目内包含布局

我正在尝试找出一种方法来对齐布局中的项目,使其与包含的布局中的项目相对应。 这是一个直观的表示: 这里是我正在寻找的示例代码(显然不起作用): main.xml中 //This would be the dark grey box included.xml 我假设最好的方法是通过在代码中动态定位深灰色框,但我不知道从哪里开始。 任何帮助都是极好的。

更改holo微调器文本颜色

我在Holo主题对话框中有一个微调器,我正在尝试更改文本颜色,因为它很难阅读: 我查看了android styles.xml以及许多其他答案,并且相信我正确设置了自定义样式; 但它只是没有被捡起来。 这是微调器所在的对话框布局文件的摘录: 这些是values-v14文件夹中styles.xml中的相关条目: @style/MySpinnerItem @style/MyTextAppearanceSpinnerItem #FFF 通过使用以下对话框本身被强制为Holo黑暗主题: 任何人都可以确定为什么微调文本不是白色的? 我看过其他解决方案,建议改变代码中的颜色,但这个应用程序支持2.3。*向上,所以对于那些非全息版本黑色文本很好,因此尝试按样式进行。 谢谢 使用Woda下面的答案更新 微调器的初始值的文本颜色现在是白色的,这对于突出显示用户有一个微调器非常重要: 但是可选项的文本颜色仍然是黑色。 我想这不是一个大问题,至少通过将初始文本变为白色来确认微调器的存在。 但我很想知道为什么这些物品仍然是黑色的,以及如何将它们变成白色。

在复制/剪切选择上叠加或隐藏工具栏

我用新的Appcompat v21工具栏创建了一个活动。 除非我从TextView中突出显示某些文本,否则一切正常。 复制/剪切操作栏显示,但不是覆盖我现有的工具栏或隐藏它只是按下工具栏,所以我得到这样的东西: 现在我的问题是,如何使复制/剪切操作栏覆盖我的工具栏? 或者,如果选择了文本,我应该隐藏它吗? 如果是这样,我该如何收听文本选择? 最好的祝福

Android ImageView按重量resize,不以父LinearLayout为中心

我意识到这可能是一个微不足道的布局问题,但我似乎无法按照我想要的方式工作,而不会在我感觉太多的容器布局中进行分层。 我想要做的是设置一个ImageView,以满足以下条件: ImageView的宽度是其父级宽度的一定百分比(现在的屏幕宽度)。 ImageView在屏幕内水平居中。 我使用XML布局创建了一个测试用例,但实际上我将以编程方式创建这些布局和视图; 我认为这不是为了找出正确的布局。 我对Android布局中的权重以及它们通常用于如何使用相对加权因子布局多个视图有些熟悉。 为了满足条件1,我创建了一个容器LinearLayout(水平方向),设置它的weightSum = 1,然后使用我想要的任何百分比的权重嵌入我的ImageView,比如说0.5。 这有效! 接下来,我希望ImageView最终在屏幕上水平居中。 所以我将引力设置为“center”/“centerHorizo​​ntal”。 这是我被卡住的地方,因为无论我选择什么引力/布局重力设置,它似乎始终与左侧对齐。 布局文件: 结果: 我真正想要实现的是这样的: 但为了实现这一点,我不得不在我的ImageView的两侧插入两个权重为0.25的虚拟LinearLayouts,如下所示: 在我看来,这是一个丑陋且笨拙的布局,不仅因为我现在不得不使用除了我的顶级LinearLayout之外的3个额外的LinearLayout来调整视图的大小和位置,还因为我想以编程方式执行所有布局并动态地。 我可能决定在运行时左右对齐我的视图,或者相对于屏幕宽度更改其缩放系数,在此解决方案中需要可能添加/删除虚拟布局视图并适当设置所有权重。 我希望有人在布局上比我有更好的解决方案! 理想情况下,我可以设置“重力”(虽然我无法使其工作),或者设置宽度而不需要水平LinearLayout容器和重量的一些替代方法,因为没有那个容器我可以居中在我的顶级垂直LinearLayout中水平放置。 谢谢! 编辑:我刚刚意识到在我的第二次布局尝试使用虚拟填充LinearLayouts我可以取消第二个填充LinearLayout(设置为0.25的重量)并在我的ImageView之前使用一个虚拟填充LinearLayout,因为它们是相对于预定的父母的weightSum。 例如: 仍然不是我希望的理想解决方案。

在Adapter.onBindViewHolder中获取CardView的宽度

我有一个post列表,其中大部分都是图片(简单地说它就像G +或FB应用程序一样)。 每个post条目都有一个图像宽高比,所以我甚至可以在从服务器加载图像之前根据它的宽度设置图像高度,因此卡片布局在加载时不会改变。 问题是为card和post图像设置layout_width=”match_parent” 。 当我获得cardview的宽度时,它为零。 所以我无法计算身高。 现在,我看到的唯一解决方案是获取父容器的宽度(RecyclerView)并扣除所有填充,但它看起来不是一个好的解决方案。 还有其他办法吗? 以下是适配器代码的示例 @Override public void onBindViewHolder(ViewHolder holder, int position) { …. int width = holder.itemView.getWidth(); …. //do some calculations } 布局(没有不相关的部分) includedPost:

在方向改变后加载“layout-ldltr”布局的android bug是否对“layout-ldrtl”?

萨拉姆。 在我的项目中,我必须为Right-To-Left和Left-To-Right语言创建layout-ldltr和layout-ldrtl布局。 我启动了从右到左语言的应用程序,并且每件事都很好。 但是当方向改变时,android加载layout-ldltr布局对layout-ldrtl ,虽然当前的Locale设置为RTL语言! 怎么能解决这个问题?! 在AndroidManifest.xml 在layout-ldrtl\activity_main.xml : UPDATE 在@JohanShogun评论之后,我将android:layoutDirection=”rtl”更改为android:layoutDirection=”locale”并解决了大多数项目的问题。 在第一张照片中,所有元素都显示非常好: 在横向模式下,在标题项中粘贴在屏幕顶部的StickyListHeader列表视图中,android使用了ltr布局! :

我的设置活动的布局文件在哪里?

我使用了Settings Activity模板在android studio中创建了一个新活动。 创建它之后,我无法在任何地方find活动的布局文件。 我在哪里可以find布局文件? 如果Settings Activity模板没有布局文件,我该如何更改其内容? Android studio还创建了一个名为xml的新文件夹,这与设置活动有什么关系吗?

Androind 2.2预览1 – 使用ConstraintsLayout和GuideLine应用程序崩溃

我正在尝试使用ContraintsLayout创建布局。 在我的布局中,我添加了水平GuideLine 。 但是,当我运行该应用程序时,它会崩溃,如果我删除了GuideLine它就可以运行。 我还检查了APK,并且有一个类java.awt.Rectagle StackStrace java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Rectangle; at android.support.constraint.solver.widgets.Guideline.(Guideline.java:43) at android.support.constraint.ConstraintLayout.setChildrenConstraints(ConstraintLayout.java:128) at android.support.constraint.ConstraintLayout.updateHierarchy(ConstraintLayout.java:106) at android.support.constraint.ConstraintLayout.onFinishInflate(ConstraintLayout.java:87) at android.view.LayoutInflater.rInflate(LayoutInflater.java:867) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at android.view.LayoutInflater.inflate(LayoutInflater.java:377) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.infostretch.app.MainActivity.onCreate(MainActivity.java:11) at android.app.Activity.performCreate(Activity.java:6669) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2578) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2686) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1440) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:5969) at java.lang.reflect.Method.invoke(Native […]

何时使用ImageButton而不是ImageView?

我对ImageButton感到困惑。 我可以使ImageView可单击并用作按钮,那么为什么我们明确需要一个ImageButton ? 在设计Android应用程序时,我发现ImageView比ImageButton更有用,也许我错过了ImageButton一些function。 所以我想知道使用ImageButton什么好处? 谢谢。