그림과 같이 길게 누를 때 선택자를 그립니다. 한 항목을 길게 누르면 CAB 메뉴가 활성화됩니다. 그러나 목록 선택기 표시기는 클릭 한 번 해제됩니다. 여러 선택을 허용하기 위해 CAB 메뉴가 활성화 될 때까지 목록 선택기를 활성화하고 싶습니다. 더블 탭을하면 색상이 바뀌어야합니다. 이 코드는 클릭 할 때 깜박임처럼 작동합니다. 어느 누구도 비슷한 것을 직면 했습니까? 이 기능을 구현할 수있는 해킹이 있습니까? 여러 선택과안드로이드에서 작동하지 않는 여러 항목에 대한 GridView 항목 목록 선택자
GRIDVIEW 내에서 OnCreate에서
의 GridView의 setchoice : 이것은 잘 작동
gridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
gridView.setMultiChoiceModeListener(new MultiChoiceModeListener());
:
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
ImageView iv = (ImageView) v
.findViewById(R.id.imageview2);
ViewGroup gridChild = (ViewGroup) gridView
.getChildAt(position);
ViewGroup gridGrandChild = (ViewGroup) gridChild
.getChildAt(0);
ViewGroup gridGreatGrandChild = (ViewGroup) gridGrandChild
.getChildAt(0);
int childSize = gridGreatGrandChild.getChildCount();
if (iv.getId() == gridGreatGrandChild.getChildAt(1)
.getId()) {
if (iv.getVisibility() == 4)
iv.setVisibility(View.VISIBLE);
else
iv.setVisibility(View.INVISIBLE);
}
}});
내가 같은를 구현하기 위해 노력하고 MultiChoiceModeListener() 클래스 내의 코드 af CAB 메뉴가 활성화됩니다. 동일한 코드를 내부에 복사했습니다.
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
}
메서드입니다. 그러나 뷰 그룹 내부의 요소에 액세스 할 수 없습니다. 하지만 GridView 전체에 액세스 할 수 있습니다. 그러나 그리드 안의 개별 아동은 아닙니다.
가의 GridView의 각 항목이 레이아웃으로 구성되어<GridView
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnWidth="190dp"
android:drawSelectorOnTop="true"
android:choiceMode="multipleChoice"
android:horizontalSpacing="3dp"
android:listSelector="@drawable/list_selector"
android:numColumns="auto_fit"
android:paddingRight="4dp"
android:stretchMode="spacingWidthUniform"
android:verticalSpacing="3dp" >
</GridView>
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/gridviewlistselector" android:state_focused="true" android:state_pressed="false"/>
<item android:state_focused="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_selected="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_pressed="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_enabled="false" android:state_focused="true"><shape>
<solid android:color="#66000000" />
</shape></item>
</selector>
: 여기
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>
<ImageView
android:id="@+id/imageview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageview"
android:layout_alignLeft="@+id/imageview"
android:layout_alignRight="@+id/imageview"
android:layout_alignTop="@+id/imageview"
android:visibility="invisible"
android:background="#76f9a49c"
>
</ImageView>
</RelativeLayout>
<ImageView
android:id="@+id/tagimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:layout_marginRight="-4dp"
android:src="@drawable/tag"
android:visibility="invisible" />
<ImageView
android:id="@+id/countimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="5dp"
android:src="@drawable/dealcount_overlay"
android:visibility="invisible" />
<TextView
android:id="@+id/count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="11dp"
android:layout_marginRight="24dp"
android:text="100"
android:textColor="#fff"
android:visibility="invisible" >
</TextView>
<ProgressBar
android:id="@+id/progressbar"
style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:visibility="visible" />
</FrameLayout>
<TextView
android:id="@+id/textView_nodata"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_below="@+id/frameLayout1"
android:layout_centerHorizontal="true"
android:text="No data available. Try different query!"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
</RelativeLayout>
내 list_selector.xml입니다 여기에
내있는 gridview 레이아웃입니다어떻게 기능을 얻을 수 있습니까? 나는 이것에 집착하고있다. Selectors에서 다양한 조합을 시도했습니다. 그러나 아무것도 나를 위해 일하는 것 같습니다. 다른 세부 정보를 제공해야합니까?
하지만 – intrepidkarthi
이 다중 선택을 위해 노력하고 있습니다 내있는 gridview 만 listSelector 항목에 대한 솔루션이 필요합니다? – intrepidkarthi
예. 다른 코드는 필요하지 않습니다. 너 같은 'CHOICE_MODE_MULTIPLE_MODAL'. 또한, 나는 android : choiceMode와 android : drawSelectorOnTop 속성을 생략했다. – dokkaebi