Computer >> Máy Tính >  >> Lập trình >> Android

Nền ListView trở nên đen khi cuộn trong Android?

Trước khi đi vào ví dụ listview, chúng ta nên biết về listview, Listview là một tập hợp các mục được lấy từ arraylist, list hay bất kỳ cơ sở dữ liệu nào. Hầu hết các công dụng của listview là tập hợp các mục ở định dạng dọc, chúng ta có thể cuộn lên / xuống và nhấp vào bất kỳ mục nào.

Đây là giải pháp đơn giản để tránh Background ListView trở nên đen khi cuộn.

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Thêm mã sau vào res / layout / activity_main.xml.

<?xml version = "1.0" encoding = "utf-8"?>
<android.support.constraint.ConstraintLayout
   xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent"
   android:layout_height = "match_parent">
   <LinearLayout
      android:layout_width = "match_parent"
      android:layout_height = "match_parent"
      android:orientation = "vertical">
      <ListView
         android:id = "@+id/list"
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:cacheColorHint = "#00000000"/>
   </LinearLayout>
</android.support.constraint.ConstraintLayout>

Trong activity_main.xml ở trên, chúng ta đã khai báo một listview. Để tránh background listview trở nên đen khi cuộn, chúng ta phải thêm cache colorhint vào listview như hình dưới đây.

<ListView
   android:id = "@+id/list"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:cacheColorHint = "#00000000"/>

Bước 3 - Thêm mã sau vào src / MainActivity.java.

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final ListView list = findViewById(R.id.list);
      ArrayList<String> arrayList = new ArrayList<>();
      arrayList.add("JAVA");
      arrayList.add("ANDROID");
      arrayList.add("C Language");
      arrayList.add("CPP Language");
      arrayList.add("Go Language");
      arrayList.add("AVN SYSTEMS");
      arrayList.add("JAVA");
      arrayList.add("ANDROID");
      arrayList.add("C Language");
      arrayList.add("CPP Language");
      arrayList.add("Go Language");
      arrayList.add("AVN SYSTEMS");
      arrayList.add("JAVA");
      arrayList.add("ANDROID");
      arrayList.add("C Language");
      arrayList.add("CPP Language");
      arrayList.add("Go Language");
      arrayList.add("AVN SYSTEMS");
      arrayList.add("JAVA");
      arrayList.add("ANDROID");
      arrayList.add("C Language");
      arrayList.add("CPP Language");
      arrayList.add("Go Language");
      arrayList.add("AVN SYSTEMS");
      ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
      list.setAdapter(arrayAdapter);
      list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String clickedItem = (String) list.getItemAtPosition(position);
            Toast.makeText(MainActivity.this, clickedItem, Toast.LENGTH_LONG).show();
         }
      });
   }
}

Trong mainActivity, chúng tôi đã lưu trữ các mục danh sách trong danh sách mảng và thêm mảng vào chế độ xem danh sách như được hiển thị bên dưới.

ArrayAdapter <String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
list.setAdapter(arrayAdapter);

Khi bạn nhấp vào mục danh sách, nó sẽ hiển thị tên của các mục mà chúng tôi đã thêm onItemclickListener như được hiển thị bên dưới.

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      String clickedItem = (String) list.getItemAtPosition(position);
      Toast.makeText(MainActivity.this,clickedItem,Toast.LENGTH_LONG).show();
   }
});

Không cần thay đổi tệp kê khai. Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn.

Nền ListView trở nên đen khi cuộn trong Android?

Bây giờ, hãy cuộn chế độ xem danh sách, bạn sẽ không gặp phải bất kỳ vấn đề nào về màu nền như được hiển thị bên dưới -

Nền ListView trở nên đen khi cuộn trong Android?