在我的测试应用程序中,我禁用AppBarLayout折叠时的扩展(通过滚动RecycleView)。我通过添加addOnOffsetChangedListener到AppBarLayout. 但是,当我单击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
我是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
在我的应用程序中,我有 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
在我的应用程序中,我正在创建家庭小部件,但我有问题找到如何在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) 在我的应用程序中,我有几个对话框片段。我想要的是这个:
当一个特定的对话框片段打开并发生旋转时,我想防止该特定片段的屏幕旋转。
另外,我希望其他片段在屏幕旋转时正常运行。
这是我想停止屏幕旋转的对话框片段的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
android ×4
android-collapsingtoolbarlayout ×1
audio ×1
divider ×1
media-player ×1
orientation ×1
performance ×1
separator ×1
widget ×1