小编Ole*_*iov的帖子

在棒棒糖前的图层列表中调整大小不正确的项目

我有一个图层列表

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:right="2dp" android:left="2dp" android:bottom="2dp" android:top="2dp">
    <bitmap
        android:gravity="center"
        android:src="@drawable/ic_menu_alert"/>
</item>

<item android:height="10dp" android:width="10dp" android:gravity="right|top">
    <shape android:shape="oval">
        <size android:height="10dp" android:width="10dp"/>
        <solid android:color="@color/navigation_drawer_notification_red_color"/>
    </shape>
</item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

显示这个图像

图片

在棒棒糖及以上一切都很好,但在前棒棒糖红圈失去所有尺寸和填充属性和图像看起来像这样

在此输入图像描述

我正在寻找解决方案大约3天,一无所获.我试图制作我自己的工具栏布局并设置为此imagebuuton scaleType ="centerInside",但它没有帮助.有人可以帮忙解决这个问题吗?

提前致谢!

layout android drawable layer-list

15
推荐指数
1
解决办法
3501
查看次数

Android Studio重构还原所有lambdas和其他Java 8功能

我有一个Android库项目

 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
Run Code Online (Sandbox Code Playgroud)

它使用了很多lambdas,尝试使用资源等.

我怎样才能 sourceCompatibility和targetCompatibility 降级Java 1.6呢?

Android Studio IDE中是否内置了此类功能?

java android java-8 android-studio

9
推荐指数
1
解决办法
666
查看次数

启动时片段中的晶圆厂位置不正确

我有一个片段活动。片段有一个协调器布局,fab是它的直接子视图和其他视图。

活动布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar_layout" />

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

片段布局

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

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.github.aakira.expandablelayout.ExpandableLinearLayout
        android:id="@+id/statistic_expand_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/toolbar"
        android:background="@color/colorPrimary"
        android:orientation="vertical"
        app:ael_duration="150"
        app:ael_interpolator="accelerateDecelerate">

        <com.github.mikephil.charting.charts.BarChart
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/overall_statistic_bar_chart"
            android:layout_width="match_parent"
            android:layout_height="@dimen/statistic_small"/>

        <TextView
            style="@style/SmallTextTheme"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="@dimen/spacing_small"
            android:gravity="center"
            android:text="@string/overall_statistic"
            android:textColor="@color/colorTextPrimary"/>

    </com.github.aakira.expandablelayout.ExpandableLinearLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/statistic_expand_layout"
        android:scrollbars="vertical"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="@dimen/spacing_tiny"
        android:layout_below="@id/statistic_expand_layout"
        android:background="@drawable/shadow_updown"/>

</RelativeLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/activity_main_fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/spacing_standard"
    android:src="@drawable/ic_add"
    app:layout_anchor="@id/recycler_view"
    app:layout_anchorGravity="bottom|end"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

当我开始活动时,此片段晶圆厂位置不正确

晶圆厂

但是当我按下任何按钮或查看fab时,它会移到右下角的正确位置。当我将此布局直接放入活动工厂时,位置总是正确的。有人可以帮我找出问题所在吗?

android floating-action-button android-coordinatorlayout

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

DiffResult调度导致"检测到不一致".有时,视图持有者适配器positionViewHolder错误无效

我有一个RxJava2 Observable,它接受两个列表,为它们计算diff结果并将此数据发送到适配器.主线程上的适配器分派更新.

适配器中的调度代码:

 public void dispatchStreams(List<StreamV3> streams, @Nullable DiffUtil.DiffResult diffResult) {

    if (streams == null) return;

    streamsList.clear();
    streamsList.addAll(streams);

    if (diffResult != null) {
        diffResult.dispatchUpdatesTo(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

我检测到了"不一致".某些设备上的某些时候视图持有者适配器positionViewHolder错误无效.我无法弄清楚我的代码有什么问题.Min SDK 21,Target SDK 26,RecyclerView版本为26.0.0.我知道扩展LinearLayoutManager并默默地捕获此错误的解决方法,但这是一个糟糕的解决方案,我相信这里应该更好.

有人可以提供任何帮助吗?

android adapter android-viewholder android-recyclerview

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

尝试更改设备配置时,找不到ID XXX的视图

我遇到了不同布局和设备配置更改的问题.

应用程序有3个feeds_activity布局(默认,横向和平板电脑).

默认:

    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/feeds_fragment_container">

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

景观:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="?android:dividerHorizontal"
    android:baselineAligned="false">

    <FrameLayout
        android:id="@+id/feeds_fragment_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2" />

    <FrameLayout
        android:id="@+id/subnodes_fragment_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

片剂:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="?android:dividerHorizontal"
    android:baselineAligned="false">

    <FrameLayout
        android:id="@+id/feeds_fragment_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2" />

    <FrameLayout
        android:id="@+id/subnodes_fragment_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是一个onCreate方法的活动:

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.feeds_activity);



        if (findViewById(R.id.subnodes_fragment_container) != null) {

            SubNodesFragment subNodesFragment = (SubNodesFragment) getSupportFragmentManager()
                    .findFragmentByTag(getString(R.string.subnodes_fragment_tag)); …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-orientation

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

如何将消息从后台服务发布到UI片段?

我和EventBusGreenrobot 有问题.

我试图从我的同步适配器的后台服务发布事件,并在片段中捕获它以更新UI.

问题是当我尝试从同步适配器发布事件时,我在调试日志中得到以下内容:

No subscribers registered for event class olexiimuraviov.ua.simplerssreader.event.UpdateUIEvent
No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent

我在其中注册片段onResume并取消注册onPause

@Override
public void onResume() {
    super.onResume();
    EventBus.getDefault().register(this);
    if (mDebug) Log.d(LOG_TAG, EventBus.getDefault().isRegistered(this) + "");
}

@Override
public void onPause() {
    super.onPause();
    EventBus.getDefault().unregister(this);
}
Run Code Online (Sandbox Code Playgroud)

onResume中的日志语句显示片段已成功注册.

这是onEvent方法:

@Subscribe
public void onEvent(UpdateUIEvent event) {
    if (mSwipeRefreshLayout.isRefreshing())
        mSwipeRefreshLayout.setRefreshing(false);
}
Run Code Online (Sandbox Code Playgroud)

我试图用Background threadmode调用onEvent方法,但它没有帮助.

在此之后,我试图使用处理程序发布事件,但eventbus仍然找不到任何注册订阅者的事件.

 new Handler(Looper.getMainLooper()).post(new Runnable() {
     @Override
     public void run() {
         EventBus.getDefault().post(new UpdateUIEvent());
     }
 });
Run Code Online (Sandbox Code Playgroud)

这是我的onPerform同步适配器方法:

    @Override
public void onPerformSync(Account account, …
Run Code Online (Sandbox Code Playgroud)

android event-bus android-syncadapter android-fragments greenrobot-eventbus

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

Android Studio布局预览默认主题

也许这是Android Studio中众所周知的选项,但是我找不到它,而Google并没有帮助我:(每次我在Android Studio中打开布局预览时,都会将Material.Light主题应用于我项目中的每个布局,需要手动应用我自己的主题以查看其在真实应用中的外观。有人知道如何在Android Studio中使用“布局预览器”预览布局时将默认的Material.Light主题更改为我的自定义主题,所以我不需要每次手动应用?

提前致谢。

android android-studio

4
推荐指数
2
解决办法
1896
查看次数

RxJava 2:在一段时间后发出收集的项目列表

我有一个Observable,当它被添加到db时,它正在监听数据库并发出项目.当我订阅这个observable时,它会逐个在db中快速发出已存储的项目.我的问题是我可以创建observable来收集以一定间隔(例如100毫秒)发出的项目到列表并发出(或返回一些函数,如doOnNext)整个列表和单独的项目,如果有更大的发射间隔?

预先感谢!

java android rx-java rx-java2

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