我必须创建像HotStarApp 这样的布局,但我有点混淆best way这样做:
我需要多个RecyclerViews还是单个RecyclerView就足够了?
我是否需要调用多个JSON或单个JSON足以从服务器获取数据?
我如何使用不同的 - 不同的布局,你可能也喜欢和必须观看剪辑
是否可以检测用户是否正在运行Android N?
我有一个带有Android N开发者预览版的Nexus 6.如果我尝试使用构建版本Build.VERSION.SDK_INT,则返回23,它等于Android Marshmallow.
我在笔记本电脑中使用Chrome浏览器和Windows 7操作系统,Windows上的Chrome提供了一个Device Mode(快捷方式F12),以便它可以模拟特定的移动设备,以便在Chrome标签页中显示和显示网页,如下所示.
但是,这Device Mode仅限于单个Chrome标签,因此当您关闭标签并打开新标签时,新标签会正常显示并显示网页,而不是在Device Mode.
所以我的问题是如何Device Mode永久设置,当我在Chrome中打开新标签时,它Device Mode默认运行.是否有任何方法或插件可以帮助我实现它?
我有一个带有CoordinatorLayout的片段
当我使用API 19运行应用程序时,行为是正确的:工具栏位于状态栏下方,main_activity的FAB按钮消失:

但是使用API 21和+:工具栏位于状态栏后面,main_activity的FAB按钮不会消失:

布局文件:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/caves_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/caves_appbar"
android:layout_width="match_parent"
android:layout_height="@dimen/detail_backdrop_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/caves_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimaryDark"
app:expandedTitleMarginStart="78dp"
app:expandedTitleMarginEnd="124dp">
<ImageView
android:id="@+id/caves_backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:background="@drawable/drawer_header_bg"
app:layout_collapseMode="parallax"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
</LinearLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/caves_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/caves_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/caves_fab"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:layout_anchor="@id/caves_appbar"
app:layout_anchorGravity="bottom|right|end"
android:src="@drawable/ic_discuss"
android:layout_margin="@dimen/fab_margin"
android:clickable="true"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我添加了一个指定style-v21 xml文件
<resources>
<style name="AppTheme" parent="Base.Theme.Design">
<item name="android:windowDrawsSystemBarBackgrounds">true</item> …Run Code Online (Sandbox Code Playgroud) 我的主要活动以片段形式显示内容.如果我按下一个按钮,其他活动就从这行代码开始:
Intent intent = new Intent(context, FragmentActivity.class);
Bundle bundle = ActivityOptions.makeCustomAnimation(context, R.anim.slide_in_left, R.anim.slide_out_left).toBundle();
context.startActivity(intent, bundle);
Run Code Online (Sandbox Code Playgroud)
因此,新活动应该滑入,当前活动应该滑出.问题是新活动是否正确动画.当前片段没有动画.
更新
这解决了问题,但我不想完成我的活动.
finish();
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
Run Code Online (Sandbox Code Playgroud)
更新结束
如果我按下FragmentActivity中的后退按钮,我还有另一个动画:
@Override
protected void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
}
Run Code Online (Sandbox Code Playgroud)
同样,只有FragmentActivity的动画正在工作(R.anim.slide_out_right).应该为Main设置动画的动画(R.anim.slide_in_right)不起作用.
这就是我想要创造的:YouTube
android android-animation android-fragments android-activity
我正在从后端(使用Retrofit)获取数据,其中之一的键包含一个JSON对象作为其值。我为此对象编写了以下类结构:
public class NotificationData {
@SerializedName("photo_pk")
@Expose
private int photoPk;
@SerializedName("gallery_pk")
@Expose
private int galleryPk;
@SerializedName("user_pk")
@Expose
private int userPk;
}
Run Code Online (Sandbox Code Playgroud)
问题在于此对象的值可以是nullor,如果不是null,则可以包含字段photo_pkor gallery_pk或or可以是gallery_pkand user_pk。如果后端将发送所有字段并为存在的字段和null其他字段提供值,那么它将工作得很好。但是由于某些字段即将到来,而有些字段则没有,根据情况,我希望来自后端的值能够正确匹配,对于那些不是来自后端的字段,我希望它们成为值null或其他一些默认值值。我该如何实现?
这是示例JSON
{
'display':{
'image':'https://kdfnvdfkdvd',
'title':'fkfjkfdvfldvmdflv',
'large_text':'bvfdkvkdfv',
'icon':'something.jpg',
'image_format':'SQUARE'
},
'data':{
'image_pk':9
},
'notif_id':8,
'screen':'IMAGE',
'priority':0,
'time':'2016-02-06 15:22:33',
is_read:False
}
Run Code Online (Sandbox Code Playgroud)
我所指的字段是数据。它包含变量JSON。