小编Ang*_*ely的帖子

如何更新骨架布局代码,以使其不会阻塞viewpager?

我正在尝试向我的ViewPager添加骨架布局/效果,但是由于某些问题,微光布局会加载,并且在我看到白色屏幕而不是ViewPager数据内容之后立即加载。

我目前正在使用这些库:

 implementation 'com.ethanhua:skeleton:1.1.2'
 implementation 'io.supercharge:shimmerlayout:2.1.0'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

<android.support.constraint.ConstraintLayout 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:background="@color/white"
    android:paddingTop="64dp">
    <View
        android:id="@+id/roomsTitle"
        style="@style/Headline2LeftBlack"
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:layout_gravity="center_vertical"
        android:background="@color/black_12"
        android:text="@string/meeting_rooms"
        android:textAppearance="@style/TextAppearance.Text.Chronicle"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:paddingBottom="16dp"/>

    <View
        android:id="@+id/room1"
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:clipToPadding="false"
        android:overScrollMode="never"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginTop="16dp"
        android:paddingBottom="16dp"
        android:background="@color/black_12"
        app:layout_constraintTop_toBottomOf="@id/roomsTitle"  />


    <View
        android:id="@+id/room2"
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:clipToPadding="false"
        android:overScrollMode="never"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginTop="16dp"
        android:background="@color/black_12"
        app:layout_constraintTop_toBottomOf="@id/room1"  />


</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

上面的代码是我的骨架视图布局。

下面的代码是我在活动中的ViewPager代码:

public class RoomListsActivity extends BaseActivity implements RoomListsMvpView {

    @Inject
    RoomListsPagerAdapter mPagerAdapter;


    @BindView(R.id.room_lists_view_pager)
    ViewPager mViewPager;

    @BindView(R.id.tab_layout)
    TabLayout mTabLayout;

    private SkeletonScreen skeletonScreen;

    public static Intent getStartIntent(Context …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-viewpager

6
推荐指数
0
解决办法
344
查看次数

活动/片段中的警报对话框确认后,如何在单击时更新RecyclerView按钮状态?

我有一个非常独特的情况,我在recyclerview中有一个按钮,单击该按钮(初始状态为“ register”)后,会将其意图传递给片段或活动中的广播接收器,并在其中引发警报对话框,带有2个选项,是的或者没有。如果选择否,则什么也不会发生,并且对话框会消失,但是如果单击是,它将处理我在我的演示者类中定义的函数(与数据有关),并且应该将我的按钮ui状态更新为“取消”。其他方法也一样,单击“取消”将返回警报,单击“是”将切换ui文本进行注册。

现在我已经实现了如下代码(请注意,即使notifydatasetchanged对我也不起作用)。知道我做错了什么以及如何实现吗?我public void onBind(int position)的适配器功能代码:

if (repo.getIsRsvpAvailable().equals("true")) {
    rsvpButton.setVisibility(View.VISIBLE);
    for (int i = 0; i < mAllRSVPEventsList.size(); i++) {
        if (mAllRSVPEventsList.get(i).getEvent().getEventId().equals(repo.getEventId()) && mAllRSVPEventsList.get(i).getIsAttending()) {
            rsvpButton.setText("CANCEL");
            rsvpButton.setOnClickListener(v -> {
                Intent in = new Intent("main_rsvp_button_clicked");
                in.putExtra("main_rsvp_event_id", repo.getEventId());
                in.putExtra("main_rsvp_is_attending", "false");
                in.putExtra("main_rsvp_item_position", position);
                rsvpButton.getContext().sendBroadcast(in);
            });
            break;
        } else {
            rsvpButton.setText("RSVP");
            rsvpButton.setOnClickListener(v -> {
                Intent in = new Intent("main_rsvp_button_clicked");
                in.putExtra("main_rsvp_event_id", repo.getEventId());
                in.putExtra("main_rsvp_is_attending", "true");
                in.putExtra("main_rsvp_item_position", position);

                rsvpButton.getContext().sendBroadcast(in);
            });
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的活动中广播接收器中的相应代码:

private BroadcastReceiver mEventIdReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context …
Run Code Online (Sandbox Code Playgroud)

java android broadcastreceiver recycler-adapter android-recyclerview

5
推荐指数
0
解决办法
282
查看次数

如何将UTC偏移量dateformat字符串解析为以|分隔的结果日期 符号

我有一个非常特殊的问题,我想在哪里解析"2019-12-25T17:00:00-05:00" ,以便它可以给我结果DEC 12 | Thursday | 5:00pm

我通过使用DateTimeFormatter和尝试了以下代码LocalDate

DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssz", Locale.US);
                DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("MM d | E | hh:mm a", Locale.US);
                LocalDate date = LocalDate.parse("2019-12-25T17:00:00-05:00", inputFormatter);
                String formattedDate = outputFormatter.format(date);
                contentTextView.setText(formattedDate);
Run Code Online (Sandbox Code Playgroud)

但是它崩溃了 DateTimeParseException: Text '2019-12-25T17:00:00-05:00' could not be parsed at index 19

知道为什么会崩溃以及我的输出是否可以提供预期的结果吗?谢谢!

java android datetime-format java-time java-date

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

克里斯·詹克斯(Chris Jenx)为Android Q造成的书法库崩溃

我有一个用于自定义字体的书法库,该库似乎可以在除android Q之外的所有版本上使用,在启动时它使我的应用程序崩溃。最近还有其他人必须处理相同的问题吗?这是我的崩溃报告:

Caused by: android.view.InflateException: Binary XML file line #17 in com.myapp.dev:layout/abc_screen_simple: Binary XML file line #17 in com.myapp.dev:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
Caused by: android.view.InflateException: Binary XML file line #17 in commyapp.dev:layout/abc_screen_simple: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:29)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:203)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:239)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:631)
at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518) …
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-fonts android-library android-10.0

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