我正在开发一个律师预订系统,一个人可以在某一天的某个特定时间(下一位律师的可用日期)预约.
让我们说它是律师的ZocDoc.相同的结构,基于时间的约会:http://goo.gl/djUZb
我正在使用MySQL和PHP.
CREATE TABLE `laywer_appointments` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`lawyer_id` INT unsigned,
`day_of_week` tinyint(3) unsigned DEFAULT '1',
`slot_date` date DEFAULT NULL,
`slot_time` time DEFAULT NULL,
`status` tinyint(4) NOT NULL DEFAULT '0',
`client_id` int(11) DEFAULT NULL, -- client_id = NULL means free slot
);
Run Code Online (Sandbox Code Playgroud)
每位律师都有基于星期几的默认时段(状态= 0表示可用).插入默认插槽时,我不提供日期,只是day_of_week.示例数据:
+-----------+-------------+-----------+-----------+
| lawyer_id | day_of_week | slot_time | status |
+-----------+-------------+-----------+-----------+
| 1 | 1 | 08:00 | 0 |
| 1 …Run Code Online (Sandbox Code Playgroud) 如何在ViewPager片段中滚动RecyclerView时独立折叠工具栏,而不会影响ViewPager的折叠效果?
我的意思是,在WhatsApp Android中,如果您滚动3个主列表中的任何一个,工具栏不会随内容移动,而是它有一个独立的动画轴,非常流畅且不会推送内容视图.您可以看到我向上或向下移动一点,RecycleView没有被工具栏折叠动画推动,它会独立移动:
我在MainActivity布局中有以下层次结构:
<CoordinatorLayout>
<AppBarLayout>
<Toolbar/>
<TabLayout/>
</AppBarLayout>
<ViewPager>
<!-- Fragments with RecyclerView -->
</ViewPager>
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|snap|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:clickable="true"
app:layout_behavior="ScrollingFABBehavior"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
片段的内容是RecyclerView:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="fragments.ConversationsFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
但是当我滚动RecyclerView时,如果我中途停止,工具栏会突然向上或向下推动片段,而不是像WhatsApp那样独立移动动画:

在这个例子中,它更加极端:
如果我不添加snap作为滚动标记,工具栏会中途停止或推送片段,具体取决于我滚动的距离.
app:layout_scrollFlags="scroll|snap|enterAlways"
Run Code Online (Sandbox Code Playgroud)
使用CoordinatorLayout完成任何方法?如果没有,任何指针将不胜感激.
android android-toolbar android-coordinatorlayout android-appbarlayout
我想使用 DynamoDB Streams + AWS Lambda 来处理聊天消息。有关同一对话user_idX:user_idY(房间)的消息必须按顺序处理。全局排序并不重要。
假设我以正确的顺序(room:msg1、room:msg2 等)提供 DynamoDB,如何保证流将按顺序提供 AWS Lambda,并保证跨单个流处理相关消息(房间)的顺序?
例如,考虑到我有 2 个分片,如何确保逻辑组进入同一个分片?
我必须完成这个:
Shard 1: 12:12:msg3 12:12:msg2 12:12:msg1 ==> consumer
Shard 2: 13:24:msg2 51:91:msg3 13:24:msg1 51:92:msg2 51:92:msg1 ==> consumer
Run Code Online (Sandbox Code Playgroud)
而不是这个(消息遵循我在数据库中保存的顺序,但它们被放置在不同的分片中,因此错误地并行处理同一房间的不同序列):
Shard 1: 13:24:msg2 51:92:msg2 12:12:msg2 51:92:msg2 12:12:msg1 ==> consumer
Shard 2: 51:91:msg3 12:12:msg3 13:24:msg1 51:92:msg1 ==> consumer
Run Code Online (Sandbox Code Playgroud)
这篇官方文章提到了这一点,但我在文档中找不到如何实现它的任何地方:
对单个主键所做的一系列更改的相对顺序将保留在分片中。此外,给定的密钥将存在于在给定时间点处于活动状态的一组同级分片中的至多一个中。因此,您的代码可以简单地处理分片内的流记录,以便准确跟踪项目的更改。
1) 如何在 DynamoDB Streams 中设置分区键?
2)如何创建保证分区键一致传递的Stream分片?
3)这真的可能吗?由于官方文章提到:给定的密钥最多会出现在给定时间点处于活动状态的一组同级分片中的最多一个中,因此看起来 msg1 可能会转到分片 1,然后 msg2 可能会转到分片 2,正如我的上面的例子?
编辑:在这个问题中,我发现了这一点:
流拥有的分片数量取决于表拥有的分区数量。因此,如果您有一个包含 4 …
在默认情况下SupportMapFragment,当Fragment被即时化时,正在加载和创建MapView,从而在主线程上执行繁重的工作.
getMapAsync(this);调用之前发生以下日志,它是主线程冻结约2秒钟的时刻.日志证明以前创建了所有内容getMapAsync().
是不是只有在getMapAsync()调用时才会加载地图?
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Enabling debug mode 0
D/OpenGLRenderer: endAllActiveAnimators on 0xb7966f90 (RippleDrawable) with handle 0xb7988688
I/AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.
I/zzy: Making Creator dynamically
W/ResourcesManager: Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
W/ResourcesManager: Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
W/art: Suspending all threads took: 5.704ms
D/ChimeraCfgMgr: Loading module com.google.android.gms.maps from APK /data/data/com.google.android.gms/app_chimera/chimera-module-root/module-fcfb08c37b9ca44c48d9936b0e1895ef8b9cffe0/MapsModule.apk
D/ChimeraModuleLdr: …Run Code Online (Sandbox Code Playgroud)