انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ListView (برنامه نویسی اندروید)

مشکل در ListView (برنامه نویسی اندروید)

#1
Exclamation 
سلام دوستان
من یه لایه row ّرای لیست های لیست ویووم طراحی کردم که کد هاش به ای صورت هست...



کد:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:paddingLeft="10dp"
   android:paddingRight="10dp"
   android:paddingTop="10dp">

   <LinearLayout
       android:orientation="vertical"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:background="@drawable/bg_btn_list"
       android:alpha="0.8">

       <LinearLayout
           android:orientation="horizontal"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center">

           <TextView
               android:id="@+id/row_list"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="Medium Text"
               android:textSize="30dp"
               android:textColor="#D1DBBD" />
       </LinearLayout>

       <LinearLayout
           android:orientation="horizontal"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center">

           <LinearLayout
               android:orientation="horizontal"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="center"
               android:gravity="center">

               <ImageButton
                   android:layout_width="40dp"
                   android:layout_height="40dp"
                   android:id="@+id/row_fav"
                   android:background="@drawable/bg_btn_list_btn"
                   android:layout_marginRight="10dp"
                   android:src="@drawable/ic_not_favorite"
                   android:padding="5dp" />

               <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="دقیقه"
                   android:id="@+id/row_min_text_2"
                   android:textSize="20dp"
                   android:textColor="#D1DBBD" />

               <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="2"
                   android:id="@+id/row_min"
                   android:textSize="20dp"
                   android:layout_marginLeft="5dp"
                   android:layout_marginRight="10dp"
                   android:textColor="#D1DBBD" />

               <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="زمان مورد نیاز:"
                   android:id="@+id/row_min_text_1"
                   android:textSize="20dp"
                   android:textColor="#D1DBBD" />

               <ImageButton
                   android:layout_width="40dp"
                   android:layout_height="40dp"
                   android:id="@+id/row_see"
                   android:background="@drawable/bg_btn_list_btn"
                   android:padding="5dp"
                   android:layout_marginLeft="10dp"
                   android:src="@drawable/ic_not_see" />

           </LinearLayout>

       </LinearLayout>

   </LinearLayout>


</LinearLayout>




با این کدا یه دکمه ا ین شکلی درمیاد

   


اینم چیدمان لایه ها که بهتر فهمیده بشه چی به چیه:

   



حالا مشکل اینجاست که به این طراحی رویه دکمه های لیست ویوو که کلیک میکنم کلیک نمیشه ولی وقتی یه row ساده درست میکنم مثلا به این صورت:



کد:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="10dp">

    <ImageView
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/icon"
        android:padding="10dp"
        android:src="@drawable/ebook_launcher"
        android:focusableInTouchMode="false" />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_heigh t="wrap_content"
            android:text="title"
            android:id="@+id/txtTitle"
            android:textSize="30dp"
            android:textColor="#010101" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="author"
            android:id="@+id/txtAuthor"
            android:textSize="30dp" />
    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:id="@+id/setSee"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true" />

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:id="@+id/setFav"
            android:layout_alignParentTop="true"
            android:layout_toStartOf="@+id/setSee" />
    </RelativeLayout>
</LinearLayout>



اما با این کدا برنامه مشکلی نداره و روی دکمه های لیست ویوو که تاچ میشه اکشنش اجرا میشه...


من باید طراحیم به صورت کد اولی باشه چرا تو کد اول این مشکل هست که دکمه ها تاچ نمیشه اما تو کد دوم که ساده تر هست مشکلی نیس...
توی کد اول انگار که یه لایه شیشه ای روی دکمه ها رو گرفته و نمیزاره روشون تاچ بشه.... (چیکار کنم این مشکل  رفع بشه)
ممنون میشم راهنماییم کنید.

 
[عکس: Untitled-1.png]
پاسخ

مشکل در ListView (برنامه نویسی اندروید)

#2
Sad ......

 
[عکس: Untitled-1.png]
پاسخ

مشکل در ListView (برنامه نویسی اندروید)

#3
کسی این مشکلو نداشته ینی؟ Sad
چه بدبختیم من پس که گیر این مشکل افتادم Tongue

 
[عکس: Untitled-1.png]
پاسخ

مشکل در ListView (برنامه نویسی اندروید)

#4
سلام.
شما نگفتید که اشاره روی کل item منظورتان است، یا اشاره روی عناصر شناسایی شده از آن (ساختار کدنویسی این دو متفاوت است).
اگر منظورتان اشاره روی عناصر شناسایی شده از item ها بوده است، ابتدا کدهای (java) مربوط به شناسایی عناصر در Adapter سازنده ListView را چک کنید (بهتر است ابتدا از صحت آنها اطمینان پیدا کنید، چون مثلا در ساختار ساده ای که ذکر کردید، عناصر ImageView داشتیم، نه ImageButton).
اما اگر منظورتان اشاره بر روی کل item بوده (کد آن را نوشته اید)، نباید با تغییر فایل xml متناظر با ردیف ها، مشکلی به وجود بیاید (حداقل موردی به ذهن بنده نمی رسد).


همچنین خیلی LinearLayout های تو در تو دارید، مثلا تگ ImageButton ، در زیر 4 لایه LinearLayout قرار گرفته است (که می توان آن را به 2 تا تغییر داد) (هر چند، این موضوع نباید مشکلی به وجود بیاورد، ولی اگر درگیر فایل xml هستید، ابتدا بهتر است آن را ساده سازی کنید). بنابراین سعی کنید که LinearLayout های اضافی را بردارید (البته باید مشخصه ها را تنظیم کنید تا ساختار به هم نریزد).
مثلا اینجا :

کد پی‌اچ‌پی:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
  android:orientation="vertical"
 
  android:layout_width="fill_parent"
 
  android:layout_height="wrap_content"
 
  android:paddingLeft="10dp"
 
  android:paddingRight="10dp"
 
  android:paddingTop="10dp">

 
  <LinearLayout
       android
:orientation="vertical"
 
      android:layout_width="match_parent"
 
      android:layout_height="match_parent"
 
      android:background="@drawable/bg_btn_list"
 
      android:alpha="0.8"

دو تا LinearLayout تو در تو داریم که هر دو هم vertical می باشند (از نظر جهت یکسان هستند).
یا اینجا :

کد پی‌اچ‌پی:
<LinearLayout
   android
:orientation="horizontal"
 
  android:layout_width="match_parent"
 
  android:layout_height="match_parent"
 
  android:layout_weight="1"
 
  android:gravity="center">

 
  <LinearLayout
       android
:orientation="horizontal"
 
      android:layout_width="wrap_content"
 
      android:layout_height="wrap_content"
 
      android:layout_gravity="center"
 
      android:gravity="center"

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

مشکل در ListView (برنامه نویسی اندروید)

#5
مشکل یه جورایی حل شد میگم برا اونایی که همچین مشکلی داشتن...

من فهمیدم که از imagebutton نمیشه استفاده کنم وقتی از اون استفاده میکرم این مشکل درست میشد ولی نمیدونم چرا و چجوری میشه این مشکلو رفعش کرد...
من که imagebutton هارو برداشتم و از همون image view استفاده کردم و مشکلم حل شد...Big Grin

 
[عکس: Untitled-1.png]
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان