这是我的应用程序屏幕:
并布局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)
我想在滚动时折叠唯一的内容。
我知道可以搬出Toolbar,AppBarLayout但是否有明确的方法?否则,我将被迫设置工具栏background color。我没有任何问题,但我认为这是一种肮脏的解决方案:)
所以。如何折叠AppBarLayout而不显示内容Toolbar?
android android-layout android-toolbar android-design-library android-appbarlayout
我joda-time-android在Presenter课堂上使用了库的类,它不能有任何Android依赖项.所以我无法正确测试它.我知道我可以使用Robolectric这个,但我想要避开这个工具和我的Presenter干净.我应该放弃JodaTime吗?还有其他方法吗?
我的目标是通过抛出异常来限制并行执行请求的数量。
例如,我只想要一个执行请求:
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 实现它?
Simple demo GitHub project: https://github.com/Try4W/AlarmManagerDemo
On emulators(Android 4.1.1, Android 6):
PendingIntent with AlarmManageradb shell dumpsys alarmIntentadb shell dumpsys alarmIntentOn my device(LeTv One/Android 6):
PendingIntent with AlarmManageadb shell dumpsys alarmIntent的一部分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)
但是命令提示符窗口并没有出现。
问题: 我做错了什么?
我使用Mosby构建具有MVP模式的应用程序.这是规则之一:
不要在Presenter中使用android库代码.
但是,如果我想从Presenter中记录一些内容呢?我看到的唯一方法是使用,System.out.println();但听起来不太好.任何的想法?
图片中的示例:
PagerViewPagerView新内容(SlidingTabLayout不更新)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) Google云端硬盘允许存储数据并在设备之间共享.但是我想在这里存储用户的照片.我在" 存储应用程序数据"网页上找不到有关限制的任何信息.
所以.有关Google云端硬盘应用数据文件夹大小限制的任何信息?
有我的JavaFX应用程序的概念:

所有屏幕合二为一ScrollPane.
例如,如果用户点击"选项"按钮,loginScreen我想要设置Y值的动画ViewPort以将其移动到optionsScreen.
如何viewport以流畅的动画以编程方式移动ScrollPane?
或者你可以提供更好的主意?
样本方案:
它基于Mosby的例子.我想分享Project之间的对象ProjectFragment和ProjectHistoryFragment使用@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并将ProjectComponent由ProjectFragment每个人创建并分享Project-dependent fragment.尼斯.
但有一个问题.如果我需要更新标题Project怎么办?在我的情况下,Project是一个没有任何setter的最终对象.Project只能在ProjectFragment中修改,因此我可以更新和重置module's值以备将来注入.但我认为这是不好的做法.有人能给出更好的建议吗?
如何在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)
doAction(...)被称为必须.好的.
initialize() …
我使用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?