android gallery的items的view 的selector问题

本文介绍了如何优化Android应用中GALLERY组件的使用,并解决了按钮在不同页面间的交互问题,包括自定义适配器、线性布局重写以及按钮状态控制等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转: http://www.maxiaoguo.com/shipin/329.html

思路: 使用gallery中的items的view

其中的1是通过gallery的position拿到的 要不不准

spGallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {


@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
pageSize.setText(position+1+"/"+spGallery.getCount());
spGallery.setSelection(position);
}
  
@Override
public void onNothingSelected(AdapterView<?> parent) {
parent.getChildCount();

}
});


还有一个最最重要的问题是 当使用gallery的时候 item中的 btn的selector 不好控制

当前的页面的btn没事,其他的btn一直处在按下的状态, 当滑动到当前的页面的时候btn会从btn 按下的状态转换到 nor的状态,体验效果非常不好


终极解决问题:


重写gallery的items中的linearlayout


<?xml version="1.0" encoding="utf-8"?>
<com.m4399.gamecenter.widget.CustomGalleryLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants"
>
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="285dp"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:background="@drawable/sd_special_card_bg"
        android:fadingEdge="none"
        android:layout_marginLeft="15px"
        android:layout_marginRight="9dp"
        >
        <!-- base info --> 
        <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       >
       <!-- 左边图片 -->
       <LinearLayout 
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       >
            <ImageView
     android:id="@+id/sp_iv"
     android:layout_width="50dp"
     android:layout_height="50dp"
     android:src="@drawable/ic_default_game_detail" 
     android:visibility="visible"
     android:layout_margin="11dp"
     />
       </LinearLayout>
       
       <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical"
       android:layout_weight="1"
       >
            <!-- name and players -->
            <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       android:layout_marginTop="13dp"
       android:paddingRight="7dp" 
       >
               <TextView 
           android:layout_width="130dp"
           android:layout_height="wrap_content"
           android:text="anger pigs"
           android:id="@+id/sp_name"
           android:singleLine="true"
           android:textColor="@android:color/black"
           android:textSize="14sp" 
           />
            <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/sp_players"
        android:textColor="@color/black"
        android:layout_marginTop="0dp"
        android:textSize="11sp"
        />
   </LinearLayout>
   
             <!-- devname version and likes -->
    <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal"
       >
            <!-- devname and version --> 


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


         <TextView
             android:id="@+id/sp_devname"
             android:layout_width="134dp"
             android:layout_height="wrap_content"
             android:layout_marginLeft="0dp"
             android:layout_marginTop="0dp"
             android:singleLine="true"
             android:text="wentao ma"
             android:textColor="@color/light_gray_five"
             android:textSize="11sp" />
 
            <TextView
            android:id="@+id/sp_version"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="V;123"
            android:textColor="@color/light_gray_five"
            android:textSize="11sp"
           />
             
            </LinearLayout>


              <LinearLayout
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:gravity="right"
                  android:layout_marginRight="0dp"
                  android:orientation="horizontal" >


            <Button
              android:id="@+id/sp_like_btn"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="sd"
              android:gravity="center_vertical"
              android:paddingRight="4dp"
              android:textSize="12sp"
              android:duplicateParentState="false"
              android:layout_marginTop="5dp"
               android:background="@drawable/ic_gi_like_nor"
               />
        <Button
              android:id="@+id/sp_nlike_btn"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="12"
              android:layout_marginLeft="10dp"
              android:paddingRight="7dp"
              android:textSize="12sp"
              android:layout_marginRight="8dp"
              android:duplicateParentState="false"
              android:layout_marginTop="5dp" 
              android:background="@drawable/ic_gi_like_nor"
               />
            </LinearLayout>
           </LinearLayout>
   
   </LinearLayout>
       <!--base info end  -->  
        </LinearLayout>
           <!-- poster -->
       <LinearLayout 
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="vertical"
           android:gravity="center_vertical|center_horizontal"
           >
          <ImageView 
              android:layout_width="260dp"
              android:layout_height="260dp"
              android:id="@+id/sp_post_iv"
              android:background="@drawable/sd_special_poster_bg"
              android:layout_gravity="center_horizontal"
              android:scaleType="centerCrop"
              /> 
           <ProgressBar
               style="?android:attr/progressBarStyleSmall"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:id="@+id/sp_process"
               android:visibility="gone"
               android:layout_marginTop="-150dp"
                />
      </LinearLayout>  
      <FrameLayout 
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
           android:layout_marginTop="15dp"
           android:layout_marginBottom="15dp"
          >
           <LinearLayout 
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal"
           android:gravity="center_horizontal"
           >
          <Button 
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:background="@drawable/sd_special_white_nor"
              android:text="查看详情"
              android:id="@+id/sp_intoinfo"
              android:layout_marginLeft="0dp"
              android:focusable="false"
              />  
           <ProgressBar
   android:id="@+id/sp_down"
   android:layout_width="111dp"
   android:layout_height="31dp" 
   android:max="100"
   android:layout_gravity="center_horizontal"
   android:text="下载"
   android:layout_marginLeft="13dp"
   android:background="@drawable/sd_special_white_nor" 
    style="@style/progressBarHorizontal_arabia_sp"
   android:indeterminateOnly="false"
    >
</ProgressBar> 

      </LinearLayout>
      <LinearLayout 
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:gravity="right"
          >
          <TextView 
   android:layout_width="105dp"
   android:layout_height="wrap_content"
   android:text="下载"
   android:textColor="@color/black"
   android:id="@+id/sp_down_tx"
android:layout_marginRight="21dp"
android:layout_marginTop="5dp"
android:gravity="center_horizontal"   
   />  
          
      </LinearLayout>  
     </FrameLayout>
      
    </LinearLayout>
</com.m4399.gamecenter.widget.CustomGalleryLinearLayout>  



package com.m4399.gamecenter.widget;


import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;


public class CustomGalleryLinearLayout extends LinearLayout {

public CustomGalleryLinearLayout(Context context) {
super(context);
}


public CustomGalleryLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public void setPressed(boolean pressed) {
super.setPressed(false);
}



@Override
protected void dispatchSetPressed(boolean pressed) {
pressed = false;
super.dispatchSetPressed(pressed);
}


@Override
public void dispatchSetSelected(boolean selected) {
selected = false; 
super.dispatchSetSelected(selected);
}
}


这样就ok了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值