Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

พื้นหลัง ListView กลายเป็นสีดำเมื่อเลื่อนใน Android?


ก่อนเข้าสู่ตัวอย่าง listview เราควรทราบเกี่ยวกับ listview, Listview คือชุดของรายการที่ดึงมาจาก arraylist, list หรือฐานข้อมูลใดๆ การใช้งาน listview ส่วนใหญ่เป็นการรวบรวมรายการในรูปแบบแนวตั้ง เราสามารถเลื่อนขึ้น/ลงและคลิกที่รายการใดก็ได้

นี่เป็นวิธีแก้ปัญหาง่ายๆ เพื่อหลีกเลี่ยงไม่ให้ Background ListView กลายเป็นสีดำเมื่อเลื่อน

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มโค้ดต่อไปนี้ใน 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>

ใน activity_main.xml ด้านบน เราได้ประกาศ listview เพื่อหลีกเลี่ยงไม่ให้ listview พื้นหลังกลายเป็นสีดำเมื่อเลื่อน เราต้องเพิ่ม cache colorhint ไปที่ listview ดังที่แสดงด้านล่าง

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

ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ไปที่ 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();
         }
      });
   }
}

ใน mainActivity เราได้จัดเก็บรายการไว้ใน arraylist และเพิ่ม array ไปยัง listview ดังที่แสดงด้านล่าง

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

เมื่อคุณคลิกที่รายการ มันจะแสดงชื่อของรายการที่เราได้เพิ่มไว้บนItemclickListenerดังที่แสดงด้านล่าง

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();
   }
});

ไม่จำเป็นต้องเปลี่ยนไฟล์รายการ มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ หากต้องการเรียกใช้แอปจาก Android Studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์และคลิกไอคอนเรียกใช้จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ

พื้นหลัง ListView กลายเป็นสีดำเมื่อเลื่อนใน Android?

ตอนนี้เลื่อนดูรายการ คุณจะไม่ได้รับปัญหาสีพื้นหลังใด ๆ ดังที่แสดงด้านล่าง -

พื้นหลัง ListView กลายเป็นสีดำเมื่อเลื่อนใน Android?