Es ist wirklich komisch das Problem, vor dem ich stehe. Aber ich muss um Hilfe bitten. Ich versuche ein Bild anzuzeigen, wenn keine Datensätze verfügbar sind. Aber das Bild wird nicht sichtbar.ImageView Kein Bild, wenn keine Datensätze vorhanden sind
Hier ist Fluss.
Ich habe content_main.xml
in denen ich eine Recycling-Ansicht, eine relativeLayout
für die Erlaubnis und eine ImageView
für Image haben.
Wenn die Berechtigung nicht erteilt wird, möchte ich das Berechtigungslayout (Working) anzeigen.
Wenn Erlaubnis gewährt wird, dann erhalte ich Datensatz von der Datenbank und Einstellung zum Adapter aber wenn recordList Größe 0 ist, dann muss ich Bild anzeigen (nicht arbeiten).
Stattdessen kann ich nur fab Taste und weißen Hintergrund sehen.
Hier ist meine content_main.xml (I Navigationsleiste bin mit so ist content_main.xml
in app_bar_main.xml
enthalten)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.sandy.callrecorder.MainActivity"
tools:showIn="@layout/app_bar_main">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/no_records"
android:visibility="gone"
android:id="@+id/backgroundImage"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/record_recycle_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:visibility="gone" />
<RelativeLayout
android:id="@+id/permissionLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="36dip"
android:paddingLeft="36dip"
android:paddingRight="36dip"
android:paddingStart="36dip"
>
<Button
android:id="@+id/btnAllowPermission"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="@string/allow_permissions" />
</RelativeLayout>
Hier ist meine MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById();
managePermissions();
}
private void findViewById() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
backgroundImage = (ImageView) findViewById(R.id.backgroundImage);
permissionLayout = (RelativeLayout) findViewById(R.id.permissionLayout);
mBtnAllowPermission = (Button)findViewById(R.id.btnAllowPermission);
recyclerView = (RecyclerView) findViewById(R.id.record_recycle_list);
mRelativeLayout = (RelativeLayout) findViewById(R.id.content_main);
fab = (FloatingActionButton) findViewById(R.id.fab);
mBtnAllowPermission.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCompat.requestPermissions(MainActivity.this, permission, MY_PERMISSIONS_REQUES);
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
private void managePermissions() {
if (!hasPermissions(permission)) {
permissionLayout.setVisibility(View.VISIBLE);
backgroundImage.setVisibility(View.GONE);
} else {
initializeRecycleView();
startService();
}
}
private void initializeRecycleView() {
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(mLayoutManager);
DBHelper mDBHelper = new DBHelper(this);
mDBHelper.open();
ArrayList<CallRecord> listOfRecord = mDBHelper.getRecordList();
mDBHelper.close();
listOfRecords = new ArrayList<>();
for (CallRecord objCallRecord : listOfRecord) {
if (objCallRecord.getIsArchive() == 0) {
listOfRecords.add(objCallRecord);
}
}
setListToRecycle(listOfRecords);
}
private void setListToRecycle(ArrayList<CallRecord> listOfRecords) {
// define an adapter
if (listOfRecords.size() <= 0) {
fab.setVisibility(View.VISIBLE);
permissionLayout.setVisibility(View.GONE);
backgroundImage.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
} else {
fab.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
backgroundImage.setVisibility(View.GONE);
permissionLayout.setVisibility(View.GONE);
mAdapter = new RecordListAdapter(listOfRecords, this);
recyclerView.setAdapter(mAdapter);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case MY_PERMISSIONS_REQUES: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (!isMyServiceRunning(TService.class)) {
Intent intent = new Intent(MainActivity.this, TService.class);
startService(intent);
}
initializeRecycleView();
} else {
if (isMyServiceRunning(TService.class)) {
Intent intent = new Intent(MainActivity.this, TService.class);
stopService(intent);
}
}
}
}
}
}
Ich kämpfe mit diesem Problem aus den letzten 24 Stunden, aber keine Hilfe. Bitte gib mir einen Hinweis.
Versuchen Sie die Einstellung Android: background = "@ Android: Farbe/schwarz" auf Ihrem ImageView um herauszufinden, ob die Ansicht korrekt angezeigt wird. Wenn das der Fall ist, ist das Problem mit Ihrem Bild. – k0bin
Versuchen Sie, imageview ein weiteres Zeichenobjekt (ein größeres Bild) hinzuzufügen, um zu prüfen, ob es sichtbar ist oder nicht. – MinnuKaAnae
Ja Bildansicht wird korrekt mit schwarzer Farbe, aber nicht Bild angezeigt. Was könnte ein Problem mit Bildern sein? –