小编NoN*_*ame的帖子

AppBarLayout CollapsingToolbar 如何禁用在 EditText 单击时展开?

在我的测试应用程序中,我禁用AppBarLayout折叠时的扩展(通过滚动RecycleView)。我通过添加addOnOffsetChangedListenerAppBarLayout. 但是,当我单击EditText它再次展开时,我不希望它展开。AppBarLayout单击时如何禁用扩展EditText

我已经放了整个代码,以便每个人都可以复制/粘贴代码,创建新项目并快速测试。

这是 .gif 的样子

在此处输入图片说明

这是 XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">



        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleTextAppearance="@android:color/transparent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="fitXY"
                android:src="@drawable/beachcroatia"/>

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


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



    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycleView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="?attr/actionBarSize"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />



    <LinearLayout
        android:id="@+id/messages_linear_layout"
        android:layout_width="match_parent"
        android:layout_height="58dp"
        android:layout_gravity="bottom"
        android:background="#E1F5FE"
        android:orientation="horizontal"
        tools:layout_editor_absoluteY="453dp">



        <EditText
            android:id="@+id/editText_messageBox"
            android:layout_width="0dp"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:layout_gravity="center"
            android:layout_weight="0.85"
            android:hint="Enter a message"/>

        <ImageView …
Run Code Online (Sandbox Code Playgroud)

android-edittext material-design android-collapsingtoolbarlayout android-appbarlayout

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

android java.lang.OutOfMemoryError recyclelerview包含大量图片

我是Android的初学者,我正在尝试创建一个能够显示大量图像的应用程序.问题是当我运行应用程序时,当我滚动时,应用程序崩溃并向我显示错误java.lang.OutOfMemoryError.

我正在使用android studio,minSdkVersion 15并且所有图片都不大于20,30 KB,但我会有很多图像显示.所有图像都在抽屉文件夹中.

这是我将所有数据添加到对象(包括图像)的类:

package com.example.android.animalsoundsforchildren;

import java.util.ArrayList;


public class Zivotinje {
    private String mAnimal_name;
    private int mAnimal_slika;
    private int mSound;
    private String mkey;


    public Zivotinje(String animalName, int slika, int sound, String key){
        this.setmAnimal_name(animalName);
        this.setmAnimal_slika(slika);
        this.setmSound(sound);
        this.setMkey(key);
    }

    public String getmAnimal_name() {
        return mAnimal_name;
    }

    public void setmAnimal_name(String mAnimal_name) {
        this.mAnimal_name = mAnimal_name;
    }

    public int getmAnimal_slika() {
        return mAnimal_slika;
    }

    public void setmAnimal_slika(int mAnimal_slika) {
        this.mAnimal_slika = mAnimal_slika;
    }
    public int getmSound() {
        return mSound;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

performance android nullpointerexception android-recyclerview

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

Android Recyclerview MediaPlayer 上一个项目声音停止,点击新项目后释放

在我的应用程序中,我有 recyclerview 项目,当我单击它时,每个项目都会播放声音。问题是当我点击几个项目时,它们都会同时播放声音直到它们完成。假设我单击 10 个项目,同时单击所有 10 个播放声音,一段时间后应用程序崩溃,我收到此错误:E/MediaPlayer: error (1, -19)。我通过使用以下代码实现自动发布来避免应用程序崩溃:

    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        @Override
                        public void onCompletion(MediaPlayer mp) {
                            mediaPlayer.release();

                        }
                    });
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的,同时听到很少的声音很烦人。我想要的是在单击新声音时停止以前的声音,我尝试实施媒体播放器停止和释放,但没有成功。

这是 google play 中的应用程序,您可以自行查看:https : //play.google.com/store/apps/details?id=org.pero.androidd.animalSoundsQuiz

这是我播放声音的适配器代码。在这段代码中有一部分 MediaPlayer.OnCompletionListener() 我在声音结束后释放声音到 aviod E/MediaPlayer: error (1, -19)错误,但这不是我想要的应用程序。单击新声音后,我想停止以前的声音。

import android.content.Context;
import android.media.MediaPlayer;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.pero.androidd.animalsoundsforchildren.R;

import java.util.List;


public class ZivotinjeAdapter extends RecyclerView.Adapter<ZivotinjeAdapter.ViewHolder> {

    private List<Zivotinje> mZivotinje;


    @Override
    public ZivotinjeAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { …
Run Code Online (Sandbox Code Playgroud)

audio android media-player android-mediaplayer android-recyclerview

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

如何在视图之间的主窗口小部件中创建简单的分隔符/分隔符

在我的应用程序中,我正在创建家庭小部件,但我有问题找到如何在2个TextViews之间创建简单的水平分隔符/分隔符.

这是一个家庭小部件布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget_RL_id"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#09C"
    android:padding="@dimen/widget_margin">

    <TextView
        android:id="@+id/widget_title_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:contentDescription="@string/appwidget_text"
        android:text="@string/appwidget_text"
        android:textSize="20sp"
        android:textStyle="bold|italic"
        android:layout_marginStart="5dp"
        android:layout_marginEnd="5dp"/>

    <TextView
        android:id="@+id/widget_datum_id"
        android:layout_alignParentEnd="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Datum"
        android:textStyle="bold|italic"
        android:textSize="8sp"
        android:layout_margin="8dp"
        />

    <TextView
        android:id="@+id/widget_theRest_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/widget_title_id"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="8dp"
        android:contentDescription="@string/appwidget_text"
        android:text="@string/appwidget_text"
        android:textColor="#ffffff"
        android:textSize="20sp"
        android:textStyle="bold|italic"
        android:layout_marginStart="5dp"
        android:layout_marginEnd="5dp"/>


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

我想在两个TextViews之间放置分隔符/分隔符,其中第一个视图是id:widget_title_id,第二个视图是id:widget_theRest_id.

我尝试以这种方式添加divider,但是android主页小部件不支持View,所以它不起作用或者可能是我做错了:

<View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/widget_title_id"
        android:background="@android:color/darker_gray"/>
Run Code Online (Sandbox Code Playgroud)

android widget separator android-widget divider

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

Android如何防止特定对话框片段的屏幕旋转

在我的应用程序中,我有几个对话框片段。我想要的是这个:

当一个特定的对话框片段打开并发生旋转时,我想防止该特定片段的屏幕旋转。

另外,我希望其他片段在屏幕旋转时正常运行。

这是我想停止屏幕旋转的对话框片段的java代码:

public class DialogDelete extends DialogFragment implements View.OnClickListener {

    TextView textViewNaslov, textViewNote;
    ImageView mBtnClose, mBtnReturn, mBtnDelete;
    private RealmResults<Drop> mRealmResolts;
    private Realm mRealm;
    private Calendar calendar;//pravimo objekt kalendara
    private BucketPickerView_Unselected mBucketNoteTimeNonSelected; //ovo nam je drugi bucket pickerview kojeg ne mozemo mjenjati
    private Bundle argumetns;


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogTheme); //dodajemo temu koju smo napravili preko editora

    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.dialog_delete, container, …
Run Code Online (Sandbox Code Playgroud)

android orientation screen-orientation android-dialogfragment dialogfragment

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