小编Won*_*abo的帖子

在CoordinatorLayout中添加工具栏下方的视图

我有以下布局:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar">

        <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|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

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

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

我添加了Fragments FrameLayout,替换它们.我的一个Fragment的一个是列表,它具有以下布局:

<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
Run Code Online (Sandbox Code Playgroud)

我的问题是工具栏是在列表上绘制的.我试图通过将内容包装CoordinatorLayout成a LinearLayout来解决这个问题,这解决了透支问题,但这样appbar滚动行为就不再起作用了.

任何帮助深表感谢!

android android-toolbar androiddesignsupport android-coordinatorlayout

162
推荐指数
2
解决办法
9万
查看次数

jsoup - 删除所有格式和链接标记,仅保留文本

假设我有一个像这样的html片段:

<p> <span> foo </span> <em> bar <a> foobar </a> baz </em> </p>
Run Code Online (Sandbox Code Playgroud)

我想从中提取的是:

foo bar foobar baz
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何从html中删除所有包装标签,并获得与html中相同顺序的文本?正如您在标题中看到的,我想使用jsoup进行解析.

重音html的示例(注意'á'字符):

<p><strong>Tarthatatlan biztonsági viszonyok</strong></p>
<p><strong>Tarthatatlan biztonsági viszonyok</strong></p>
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Tarthatatlan biztonsági viszonyok
Tarthatatlan biztonsági viszonyok
Run Code Online (Sandbox Code Playgroud)

这个html不是静态的,通常我只想要一个通用html片段的每个文本都以解码的人类可读形式,宽度换行符.

html java jsoup

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

从命令行覆盖build.gradle中的属性

build.gradle我们可以定义变量,如:

def libVersion='someVersion'
Run Code Online (Sandbox Code Playgroud)

我们可以在命令行中覆盖属性 -PlibVersion=otherVersion

不幸的是,这个命令行选项似乎不影响定义的局部变量build.gradle.有没有办法从命令行覆盖这些?请注意,由于某些原因,我不想创建settings.gradle也不想创建gradle.properties文件.

gradle

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

getMeasuredWidth返回完全错误的值

我必须测量一个View用于间隔其他的.我用这个代码:

ViewGroup view = ...;
view.setPadding(10, 0, 10, 0);
int wrapContent = RelativeLayout.LayoutParams.WRAP_CONTENT;
int specWidth = MeasureSpec.makeMeasureSpec(wrapContent, MeasureSpec.AT_MOST);
view.measure(specWidth, specWidth);
int questionWidth = view.getMeasuredWidth();
Run Code Online (Sandbox Code Playgroud)

这在Android 4.3仿真器上按预期工作.

然而,在三星Galaxy XCover 2(S7710)Android 4.1.2手机上返回的测量宽度是16777214 ...我尝试了一切,掩盖View.MEASURED_SIZE_MASK,但没有任何帮助.

你能提供一些帮助吗?提前致谢!

android view measure android-layout

26
推荐指数
1
解决办法
9069
查看次数

@TargetApi注释仅针对一个Api级别或更高级别吗?

我在我的应用程序中使用@TargetApi(23).

@TargetApi(23)
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        onAttachToContext(context);
    }


    @SuppressWarnings("deprecation")
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            onAttachToContext(activity);
        }
    }

    protected void onAttachToContext(Context context) {

    }
Run Code Online (Sandbox Code Playgroud)

但我无法理解:@TargetApi(23)注释的意思是"仅适用于Api等级23"或"适用于Api等级23及以上"?例如,如果设备24的Api级别,是onAttach(Context context)方法调用?

android

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

PL/SQL检查查询是否返回空

我正在写一个程序,我需要检查我的选择查询是否返回空记录.(在这个例子中是否没有x,y架子)

我怎样才能做到这一点?

我试过这个:

temp shelves.loadability%TYPE := NULL;
BEGIN

select loadability into temp from shelves where rownumber = x and columnnumber = y;
IF temp IS NOT NULL THEN
/* do something when it's not empty */
ELSE
/* do the other thing when it's empty */
END IF;
Run Code Online (Sandbox Code Playgroud)

但是if的第二个分支从不起作用......

编辑:

哦,这很容易......

temp shelves.loadability%TYPE;
BEGIN

select count(*) into temp from shelves where rownumber = x and columnnumber = y;
IF temp != 0 THEN
/* do something when it's not empty …
Run Code Online (Sandbox Code Playgroud)

plsql

20
推荐指数
3
解决办法
8万
查看次数

在后台线程上处理Observable

我正在使用RxAndroid进行流操作.在我的实际用例中,我从服务器获取列表(使用Retrofit).我正在使用调度程序在后台线程上完成工作,并在Android UI(主)线程上获得最终发射.

这适用于网络调用,但是我意识到网络调用后我的运算符不使用后台线程,而是在主线程上调用.

myService.fetchSomeIntegersFromServer()
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread())
        .filter(integer -> {
            System.out.println(Looper.getMainLooper().getThread() == Thread.currentThread());
            return true;
        })
        .subscribe(integer1 -> {});
Run Code Online (Sandbox Code Playgroud)

如何确保所有操作都在后台线程上执行?

rx-java rx-android

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

ViewPager禁用滑动到某个方向

我想禁用滑动,但仅限于右侧.我发现在工作液这个答案.不幸的是,这复制了整个ViewPager源以实现目标.是否有任何方法只是继承现有的类而不是重复?

android swipe android-viewpager

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

隐藏Eclipse Luna中的"快速访问"条目

使"快速访问"搜索字段可选是Eclipse中期待已久的功能.现在,根据Eclipse Luna项目站点,这是可能的.我的问题是:我们如何删除它?我在设置或透视自定义中找不到它的选项.

eclipse eclipse-luna

17
推荐指数
1
解决办法
9358
查看次数

通过后退按钮关闭活动时返回意图结果

我开始一个新的Activity从原来的Activity使用startActivityForResult(intent, requestCode).我想Activity在用户按下后退按钮时将数据返回到原始数据,因此返回原始数据时Activity.我尝试了两种方法:

  • 压倒一切onBackPressed():

    @Override
    public void onBackPressed() {
        super.onBackPressed();
    
        Intent intent = new Intent();
        intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
        setResult(RESULT_OK, intent);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 压倒一切onPause():

    @Override
    protected void onPause() {
        super.onPause();
    
        Intent intent = new Intent();
        intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
        setResult(RESULT_OK, intent);
    }
    
    Run Code Online (Sandbox Code Playgroud)

不幸的是,他们没有工作(resultCodeRESULT_OKonActivityResult()).这样做的正确方法是什么?谢谢!

android android-intent android-activity

15
推荐指数
2
解决办法
3万
查看次数