问题描述
我注意到在我的一个屏幕上,ImageButton 的可绘制对象本身以某种方式获得了深灰色调。它只影响 5 个按钮中的 2 个。这是它应该的样子:desired look
应用启动时的样子。但是,如果我来回切换到另一个选项卡,按钮的 2 会变成这样的深色: undesired look
我无法弄清楚为什么会发生这种情况,因为除了包含它们的 Fragment 之外,我没有在代码中的任何其他地方引用按钮:
package com.aarrow.yannicniessen.signspinappbyyannicniessen;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.fragment.app.Fragment;
import com.aarrow.yannicniessen.signspinappbyyannicniessen.R;
public class Default_Fragment extends Fragment {
private ImageButton teamScheduleButton;
private ImageButton completedJobsButton;
private ImageButton spinformationButton;
private ImageButton videoButton;
private ImageButton logoutButton;
public Default_Fragment(){}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_default,container,false);
final Context context = this.getContext();
final MainActivity activity = (MainActivity) context;
completedJobsButton = view.findViewById(R.id.CompletedJobsButton);
teamScheduleButton = view.findViewById(R.id.TeamscheduleButton);
videoButton = view.findViewById(R.id.VideoButton);
spinformationButton = view.findViewById(R.id.SpinformationButton);
logoutButton = view.findViewById(R.id.logoutButton);
completedJobsButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
activity.showOrAddFragment("Completed");
}
});
teamScheduleButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
activity.showOrAddFragment("Jobs");
}
});
videoButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
activity.showOrAddFragment("Videos");
}
});
spinformationButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
activity.showOrAddFragment("Forms");
}
});
logoutButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
activity.showLoginScreen();
}
});
return view;
}
}
这是包含按钮的资源文件:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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="#ffffff">
<ImageButton
android:id="@+id/CompletedJobsButton"
android:layout_width="0dp"
android:layout_height="0dp"
app:srcCompat="@drawable/completedjobs"
android:scaleType="fitXY"
android:background="@drawable/backgroundstate"
app:layout_constraintEnd_toEndOf="@id/vertical_95"
app:layout_constraintStart_toStartOf="@id/vertical_5"
app:layout_constraintTop_toTopOf="@id/horizontal_1"
app:layout_constraintBottom_toTopOf="@id/horizontal_19"
android:contentDescription="Todo" />
<ImageButton
android:id="@+id/TeamscheduleButton"
android:layout_width="0dp"
android:layout_height="0dp"
app:srcCompat="@drawable/teamsched"
android:scaleType="fitXY"
android:background="@drawable/backgroundstate"
app:layout_constraintEnd_toEndOf="@id/vertical_95"
app:layout_constraintStart_toStartOf="@id/vertical_5"
app:layout_constraintTop_toTopOf="@id/horizontal_20"
app:layout_constraintBottom_toTopOf="@id/horizontal_39"
android:contentDescription="Todo" />
<ImageButton
android:id="@+id/VideoButton"
android:layout_width="0dp"
android:layout_height="0dp"
app:srcCompat="@drawable/videos"
android:scaleType="fitXY"
android:background="@drawable/backgroundstate"
app:layout_constraintEnd_toEndOf="@id/vertical_95"
app:layout_constraintStart_toStartOf="@id/vertical_5"
app:layout_constraintTop_toTopOf="@id/horizontal_40"
app:layout_constraintBottom_toTopOf="@id/horizontal_59"
android:contentDescription="Todo" />
<ImageButton
android:id="@+id/SpinformationButton"
android:layout_width="0dp"
android:layout_height="0dp"
app:srcCompat="@drawable/spinformation"
android:scaleType="fitXY"
android:background="@drawable/backgroundstate"
app:layout_constraintEnd_toEndOf="@id/vertical_95"
app:layout_constraintStart_toStartOf="@id/vertical_5"
app:layout_constraintTop_toTopOf="@id/horizontal_60"
app:layout_constraintBottom_toTopOf="@id/horizontal_79"
android:contentDescription="Todo" />
<ImageButton
android:id="@+id/logoutButton"
android:layout_width="0dp"
android:layout_height="0dp"
app:srcCompat="@drawable/logout"
android:scaleType="fitXY"
android:background="@drawable/backgroundstate"
app:layout_constraintEnd_toEndOf="@id/vertical_95"
app:layout_constraintStart_toStartOf="@id/vertical_5"
app:layout_constraintTop_toTopOf="@id/horizontal_80"
app:layout_constraintBottom_toTopOf="@id/horizontal_99"
android:contentDescription="Todo" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/vertical_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.05"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/vertical_95"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.95"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.30"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.01"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_19"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.19"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.20"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_39"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.39"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_40"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.40"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_59"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.59"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_60"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.60"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_79"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.79"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_80"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.80"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/horizontal_99"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.99"/>
</androidx.constraintlayout.widget.ConstraintLayout>
背景状态:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:drawable="@android:color/transparent" />
<item android:state_pressed="false" android:drawable="@android:color/transparent" />
<item android:drawable="@android:color/transparent" />
</selector>
奇怪的是,根据资源文件中按钮的顺序,受影响的按钮会发生变化。在某些设置中,它是图片中的两个外部设置。有时是第三个也是最后一个。因此,我认为它不可能是由一些损坏的可绘制对象引起的。
如果有人知道为什么会发生这种情况,我们将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)