我在AppBarLayout和CollapsingToolbarLayout中遇到一些问题。这是当前发生的情况:
https://www.youtube.com/watch?v=z4yD8rmjSjU
向下滚动运动正是我想要的。但是,当我再次向上滚动时,橙色条应该立即出现(确实如此),但是我希望ImageView仅在用户滚动到最顶部时才开始出现。谁能帮我达到这个效果?
这是我的布局xml:
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways|exitUntilCollapsed">
<TextView
android:text="ImageView"
android:textSize="20sp"
android:textColor="@android:color/white"
android:gravity="center"
android:layout_marginTop="56dp"
android:layout_width="match_parent"
android:layout_height="145dp"
app:layout_collapseMode="parallax"
android:background="#444"/>
<TextView
android:text="Top bar"
android:textColor="@android:color/white"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="#ff8000"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
<TextView
android:text="Bottom bar"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:layout_width="match_parent"
android:textColor="@android:color/black"
android:layout_height="50dp"
android:background="#ddd"
app:layout_scrollFlags="enterAlways"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_scrolling"/>
Run Code Online (Sandbox Code Playgroud)
android android-coordinatorlayout android-collapsingtoolbarlayout android-appbarlayout
注册OnClickListener我总是打电话setOnClickListener(listener)给Button.现在我已经看到了一段代码,其中在布局中定义了click事件,方法是使用android:onclick="nameOfMethod"并使用View参数实现该方法.
这两种添加方式有什么不同OnClickListener吗?推荐哪一个?
对于我的一个项目,当我单击“运行”时,Android Studio 有时不会重建。我必须手动单击“重建项目”,等待它重建,然后单击“运行”将应用程序部署到设备。如果我不先手动单击“重建项目”,则应用程序的先前版本将部署到设备。
这需要花费大量时间,并且在开发应用程序时非常烦人。
是否存在我可能意外更改的设置?
它只发生在某个特定项目上。我尝试查看设置,但找不到任何可能导致此问题的内容。
编辑:仅当自上次构建以来唯一的更改位于 XML 文件中时,才会发生这种情况。
我有几个可以通过int找到的枚举.这是通过枚举上的静态方法完成的.例如:
enum Foo {
A, B, C, D, ... ;
public static Foo fromInt(int i) {
switch(i) {
case 15: return A;
case 42: return B;
...
}
}
enum Bar {
BLA, BOO, BEE, ... ;
public static Bar fromInt(int i) {
switch(i) {
case 78: return BLA;
case 22: return BOO;
...
}
}
...
Run Code Online (Sandbox Code Playgroud)
现在在一些代码中我有一个泛型类型T,保证是这些枚举之一,我有一个整数i.如何fromInt通过值调用方法并获取枚举实例i?
我尝试使用静态方法创建一个接口,fromInt并让枚举实现它,但静态方法在接口中不起作用.
我不能使用Java 8.
我一直在寻找答案,但找不到任何解决我问题的方法.
我有一个包含动态内容的网站.我想要的是内容尽可能流入列中,以尽量减少滚动.
这些物品具有动态高度.
xxx item 1 xxx | xxx item 4 xxx
xxxxxxxxxxxxxx | xxxxxxxxxxxxxx
xxxxxxxxxxxxxx |------------------
------------------| xxx item 5 xxx
xxx item 2 xxx | xxxxxxxxxxxxxx
xxxxxxxxxxxxxx |------------------
------------------| xxx item 6 xxx
xxx item 3 xxx | xxxxxxxxxxxxxx
xxxxxxxxxxxxxx | xxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
但是当调整浏览器窗口大小时,我想将内容放在一个列表中,所以一列表.
我知道媒体查询,但是如何配置它以便当窗口足够宽时它会流入2列布局?
同样重要的是,项目(下面的HTML中的"group"div)不会在底部分成两半.
内容HTML(使用KnockoutJS作为动态数据,groupContainer中的内容因groupContainer中的foreach属性而重复):
<div data-bind="foreach: $data.groups" class="groupsContainer">
<div class="group">
<div data-bind="text: $data.name" class="groupTitle"></div>
<table data-bind="foreach: $data.fields" class="fieldsContainer">
<tr>
<td data-bind="text: $data.name" class="fieldName"></td>
<td data-bind="template: { name: $data.typeId, data: $data}" class="fieldValue"></td>
<td class="valueChanged" data-bind="if:$data.valueChanged"><img
src="resources/images/control-state-edited.png" /></td> …Run Code Online (Sandbox Code Playgroud) 我正在建立一个扑克游戏.在我的申请中,我有一堂课ChipSet.A ChipSet基本上是5个整数的数组(每个颜色扑克筹码一个).
public class ChipSet {
public static final int WHITE_VALUE = 1;
public static final int RED_VALUE = 2;
public static final int GREEN_VALUE = 5;
public static final int BLUE_VALUE = 10;
public static final int BLACK_VALUE = 20;
public static final int[] VALUES = new int[]{WHITE_VALUE, RED_VALUE, GREEN_VALUE, BLUE_VALUE, BLACK_VALUE};
protected int[] chips;
public ChipSet(int[] chips) {
if (chips == null || chips.length != 5)
throw new IllegalArgumentException("ChipSets should contain exactly 5 integers!");
// …Run Code Online (Sandbox Code Playgroud) 在我正在开发的 Android 应用程序中,我们遇到了有关付款的问题。
当用户想要下订单时,我们会发出一个 API 请求,该请求将返回付款 URL 和付款 ID。URL 是我们将打开用于付款的网页,ID 用于从我们的 API 检索付款状态。当我们从 API 请求付款状态时,它将返回“成功”、“已取消”或“待处理”。当付款完成或用户单击付款网页内的取消链接时,用户将被重定向到由应用程序处理的 URL。如果用户被重定向,我们将进入订单确认页面(付款成功时)或返回结账页面(通过点击网页中的取消链接取消付款时)。使用 Chrome 自定义选项卡打开付款网页。
当用户在完成或取消付款之前关闭浏览器然后返回我们的应用程序时,就会出现此问题。当用户在没有被浏览器重定向的情况下返回我们的应用程序时,应用程序将发出状态请求以检查我们是否应该进入订单确认页面。当浏览器关闭时,可能会发生以下情况之一:
场景 1 和 2 完全没问题,但场景 3 和 4 会出现问题。当状态请求返回“待处理”时,应用程序不知道是场景 3 还是场景 4。应用程序将在结账屏幕顶部显示一个对话框,显示“付款待处理”。问题是,当发生这种情况时,应用程序不知道 1) 付款是否仍在处理中并且会在未来某个时候成功,或者 2) 永远不会成功,因为用户从未付款。如果用户关闭这个对话框,仍有可能支付成功而用户不知道。我们收到了很多用户的投诉,他们关闭了此对话,然后尝试再次订购,导致意外的重复订单。
我们尝试了一些解决方法,让对话在至少 30 秒内不可关闭,以便给支付一些时间来处理,但这会给刚刚关闭对话返回结账屏幕的用户带来非常糟糕的用户体验(场景 4)。
我们是否缺少任何可以解决该问题的 Android 功能?还有其他解决办法吗?我们希望看到其他应用程序的方法。
Galaxy S4 / S5 / S6 Active和Galaxy XCover型号具有此额外的硬件按钮。在设置中,用户可以选择在按下按钮时应打开的应用程序。
我正在开发专门针对Galaxy XCover 3的应用程序。当用户首次打开该应用程序时,我想问用户是否要让硬件按钮打开我的应用程序。
我试图在“摄像机按钮”事件上注册一个广播接收器,但这不起作用。
有谁知道我怎么能达到这个结果?
自Android 4.4 Kit Kat以来,按下的按钮或所选列表项不再突出显示为蓝色,而是半透明的灰色阴影.有谁知道新列表选择器是什么颜色或我怎么能找到?
我正在使用JPA,我有这样的数据结构:
class ContainerA {
long id;
List<ContainerB> bs;
}
class ContainerB {
long id;
List<ContainerC> cs;
}
class ContainerC {
long id;
List<Device> devices;
}
class Device {
long id;
List<Attribute> attributes;
}
class Attribute {
long id;
long value;
}
Run Code Online (Sandbox Code Playgroud)
我需要的是一个查询来获取所有ContainerA id的列表,以及它们对应的总数devices,总数attributes和所有values 的总和;
我是JPA的新手,我尝试使用QueryDSL,但我没有设法让它工作.
什么查询是获取我需要的信息的最佳方式?