小编Ale*_*ndr的帖子

如何折叠AppBarLayout而不是工具栏的内容

这是我的应用程序屏幕:

在此处输入图片说明

并布局xml:

<android.support.v4.widget.NestedScrollView
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:animateLayoutChanges="true">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:title="@string/app_name"
        app:theme="@style/Toolbar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />

</android.support.design.widget.AppBarLayout>

<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:layout_margin="16dp"
    android:src="@drawable/arrow_right_bold"
    app:fabSize="normal" />
Run Code Online (Sandbox Code Playgroud)

我想在滚动时折叠唯一的内容。

我知道可以搬出ToolbarAppBarLayout但是否有明确的方法?否则,我将被迫设置工具栏background color。我没有任何问题,但我认为这是一种肮脏的解决方案:)

所以。如何折叠AppBarLayout而不显示内容Toolbar

android android-layout android-toolbar android-design-library android-appbarlayout

5
推荐指数
1
解决办法
4035
查看次数

单元测试和joda-time-android

joda-time-androidPresenter课堂上使用了库的类,它不能有任何Android依赖项.所以我无法正确测试它.我知道我可以使用Robolectric这个,但我想要避开这个工具和我的Presenter干净.我应该放弃JodaTime吗?还有其他方法吗?

android jodatime mosby

5
推荐指数
1
解决办法
876
查看次数

如何使用 Retrofit 2.0 限制并行请求?

我的目标是通过抛出异常来限制并行执行请求的数量。

例如,我只想要一个执行请求:

someApi.getUser(
    result -> print("ok: " + result), exception -> print("error: " + exception)
); // this request will be executed in 5 seconds

someApi.getServerInfo(
    result -> print("ok: " + result), exception -> print("error: " + exception)
); // there I want to catch exception like ExecutorIsBusy
Run Code Online (Sandbox Code Playgroud)

如何使用 Retrofit 2.0 实现它?

android retrofit2

5
推荐指数
1
解决办法
3670
查看次数

AlarmManager:在某些设备上从最近的应用程序刷卡应用程序后,PendingIntent 消失了

Simple demo GitHub project: https://github.com/Try4W/AlarmManagerDemo

On emulators(Android 4.1.1, Android 6):

  1. I scheduling new PendingIntent with AlarmManager
  2. check active alarms via adb shell dumpsys alarm
  3. see my Intent
  4. close app via swiping it from recent apps
  5. check active alarms via adb shell dumpsys alarm
  6. see my Intent
  7. BroadcastReciver fired at time!

On my device(LeTv One/Android 6):

  1. I scheduling new PendingIntent with AlarmManage
  2. check active alarms via adb shell dumpsys alarm
  3. see my Intent
  4. close app via swiping it from recent apps …

android alarmmanager android-intent android-alarms

5
推荐指数
1
解决办法
1749
查看次数

Gradle - 如何在新的 cmd 窗口中执行 bat 文件?

的一部分build.gradle

task runCraftBukkit(type:Exec) {
    println "Starting CraftBukkit server..."
    commandLine = ['cmd', '/C', 'start', 'D:/Projects/WorkSpaces/WorldCleaner/devserver/start.bat'] // cmd /C start D:/Projects/WorkSpaces/WorldCleaner/devserver/start.bat
    workingDir = file('./devserver/')
}
jar.doLast {
    runCraftBukkit.execute()
}
Run Code Online (Sandbox Code Playgroud)

输出:

15:13:54: Executing external task 'jar'...
Starting CraftBukkit server...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE

BUILD SUCCESSFUL
...
Run Code Online (Sandbox Code Playgroud)

但是命令提示符窗口并没有出现

问题: 我做错了什么?

gradle build.gradle

4
推荐指数
1
解决办法
1万
查看次数

MVP:如何从Presenter写入日志

我使用Mosby构建具有MVP模式的应用程序.这是规则之一:

不要在Presenter中使用android库代码.

但是,如果我想从Presenter中记录一些内容呢?我看到的唯一方法是使用,System.out.println();但听起来不太好.任何的想法?

mvp android mosby

4
推荐指数
1
解决办法
725
查看次数

刷新SlidingTabLayout

图片中的示例:

  1. PagerView

在此输入图像描述

  1. PagerView新内容(SlidingTabLayout不更新)

在此输入图像描述

  1. 新视图实例(SlidingTabLayout更新);

在此输入图像描述

这是我的代码:

public class CharSortFragment extends Fragment {

    private final String TAG = "CharSortFragment";

    private ViewPager viewPager;
    private TabsPagerAdapter tabsAdapter;
    private SlidingTabLayout slidingTabLayout;

    private FragmentActivity activity;

    public CharSortFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Log.d(TAG, "OnCreate view...");
        final View view = inflater.inflate(R.layout.char_sort_fragment, container, false);
        activity = getActivity();

        Log.d(TAG, "Init add button...");
        FloatingActionButton addButton = (FloatingActionButton) view.findViewById(R.id.add_button);
        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-5.0-lollipop

3
推荐指数
1
解决办法
2781
查看次数

Google云端硬盘应用数据文件夹的限制是多少?

Google云端硬盘允许存储数据并在设备之间共享.但是我想在这里存储用户的照片.我在" 存储应用程序数据"网页上找不到有关限制的任何信息.

所以.有关Google云端硬盘应用数据文件夹大小限制的任何信息?

android google-drive-api google-drive-android-api

3
推荐指数
1
解决办法
519
查看次数

在按钮单击上移动ScrollPane的视点

有我的JavaFX应用程序的概念:

概念

所有屏幕合二为一ScrollPane.

例如,如果用户点击"选项"按钮,loginScreen我想要设置Y值的动画ViewPort以将其移动到optionsScreen.

如何viewport以流畅的动画以编程方式移动ScrollPane?

或者你可以提供更好的主意?

javafx javafx-8

2
推荐指数
1
解决办法
1120
查看次数

Dagger 2:更新范围内提供的对象

样本方案:

在此输入图像描述

它基于Mosby的例子.我想分享Project之间的对象ProjectFragmentProjectHistoryFragment使用@PerProject范围.

ProjectModule:

@Module
public class ProjectModule {

    private Project project;

    public ProjectModule(Project project) {
        this.project = project;
    }

    @Provides
    @PerProject
    public Project provideProject() {
        return project;
    }

}
Run Code Online (Sandbox Code Playgroud)

ProjectModule并将ProjectComponentProjectFragment每个人创建并分享Project-dependent fragment.尼斯.

但有一个问题.如果我需要更新标题Project怎么办?在我的情况下,Project是一个没有任何setter的最终对象.Project只能在ProjectFragment中修改,因此我可以更新和重置module's值以备将来注入.但我认为这是不好的做法.有人能给出更好的建议吗?

android dagger-2 mosby

2
推荐指数
1
解决办法
1358
查看次数

Android MVP和分析

如何在MVP应用程序架构上应用Firebase Analytics(例如)?(我使用Mosby构建MVP)

我想跟踪的事件"opening screen","do click action".

有我如何发送"opening screen"事件.

private const val ANALYTICS_SCREEN_NAME = "ask_password"
private const val ANALYTICS_ACTION_DONE = "done"
class AskPasswordPresenter : MyDiaryPresenter<AskPasswordView> {

    @Inject
    constructor(analytics: AnalyticsManager) : super(analytics) // AnalyticsManager is wrapper around Firebase Analytics API

    override fun initialize() { // this method called when new ViewState created
        super.initialize()
        analytics.doScreenOpened(ANALYTICS_SCREEN_NAME)
    }

    fun done(password: String) { // called when user click on 'Done' button
        ...
        analytics.doAction(ANALYTICS_SCREEN_NAME, ANALYTICS_ACTION_DONE)
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. doAction(...)被称为必须.好的.

  2. initialize() …

android google-analytics mosby firebase-analytics

2
推荐指数
1
解决办法
1146
查看次数

通过pageId获取维基百科页面网址

我使用wikipedia api从随机页面中获取摘录.

有例子回应:

{
    "batchcomplete": "",
    "continue": {
        "grncontinue": "0.701350797294|0.701351244349|4312122|0",
        "continue": "grncontinue||"
    },
    "query": {
        "pages": {
            "1485573": {
                "pageid": 1485573,
                "ns": 0,
                "title": "some title",
                "extract": "some text"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我知道pageid了这个页面.

我怎么能得到url这个页面pageid

wikipedia-api mediawiki-api

0
推荐指数
1
解决办法
2525
查看次数

更改文本选择工具的颜色

我想改变这件事的颜色.我该怎么做?(通过xml或以编程方式)

这里

android textview android-layout

-2
推荐指数
1
解决办法
81
查看次数