2014-01-24 3 views
0

У меня есть xml. Я хотел бы сделать кликабельное изображение. Однако, похоже, что я могу только нажать checkTextView. Есть ли способ, которым я могу иметь checktextview, а также просмотр изображений независимо? Похоже, что checkedTextView потребляет все пространство, с просмотром изображения позади checktextview (может быть?). Есть идеи? Довольно новый для разработки Android, и это очень смущает. Я попытался дать вес, но, похоже, это не помогло.CheckedTextView в LinearLayout

<LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="60dp" 
      android:orientation="vertical"> 
     <CheckedTextView 
      android:id="@+id/checked_text_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="5dp" 
      android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
      android:gravity="center_vertical" 
      android:text="@string/hello_world" 
      android:textColor="@color/white" 
      android:padding="20dp" 
      android:textSize="20sp" 
      android:textStyle="bold"/> 
      <ImageView 
       android:id="@+id/my_image_pencil" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:src="@drawable/image_pencil" /> 
     </LinearLayout> 
+0

вам это нужно горизонтально ли? – Piyush

+0

@PiyushGupta да, его строка в списке =/ – BigBug

+0

проверить мой ответ. – Piyush

ответ

1

Используйте этот один ...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="60dp" > 

<CheckedTextView 
    android:id="@+id/checked_text_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:gravity="center|right" 
    android:padding="20dp" 
    android:text="Hello" 
    android:textColor="#fff" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<ImageView 
    android:id="@+id/my_image_pencil" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="16dp" 
    android:src="@drawable/ic_launcher" /> 

</RelativeLayout> 

Если вы хотите нажать события ImageView в вашем элементе строки, а затем установите

android:focusable="false 

для CheckedTextView.

+0

хм хорошо, он сделал макет каждой строки в списке лучше, но я все еще могу выбрать только checkTextView. Спасибо за попытку помочь я, однако. – BigBug

+0

chk обновленный ответ – Piyush

+0

не повезло! Я не знаю почему ничего не работает =/спасибо в любом случае – BigBug

0

попробовать это,

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
    android:layout_height="60dp" 
     android:orientation="vertical"> 
<CheckedTextView 
    android:id="@+id/checked_text_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="5dp" 
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:gravity="center_vertical" 
    android:text="@string/hello_world" 
    android:textColor="@color/white" 
    android:padding="20dp" 
    android:textSize="20sp" 
    android:textStyle="bold"/> 
    <ImageView 
     android:id="@+id/my_image_pencil" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onclick="onImageClick" 
     android:src="@drawable/image_pencil" /> 
</LinearLayout> 

В деятельности есть метод, как этот

public void onImageClick(View view) 
{ 
    // handler for imageclick 
} 
+0

hmmm не повезло :(все тот же – BigBug

+0

попробуй мой обновленный анс .. он будет работать, конечно – Sush

0

Как при использовании флажков, кнопок, imagebutton и т. Д. В виде списка. Это занимает весь фокус списка, и, таким образом, когда мы нажимаем на список или другие элементы списка, такие как изображения и т. Д., Тогда нет никакого акцента на этих виджетах, и, таким образом, на них не действуют кликабельные действия.

Так просто изменить код для флажка, как следующие ..

<CheckedTextView 
      android:id="@+id/checked_text_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="5dp" 
      android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
      android:gravity="center_vertical" 
      android:text="@string/hello_world" 
      android:padding="20dp" 
      android:textSize="20sp" 
      android:focusable="false" 
      android:textStyle="bold"/> 

Я просто добавил в коде этой линии .. android:focusable="false

+0

не повезло. по какой-то причине вся строка все еще потребляется checktextview, и, следовательно, это единственное, что я могу выбрать. =/спасибо в любом случае, хотя – BigBug

+0

Как вы используете изображение и флажок, в частности listitem, а затем добавьте android: focusable = "true" в изображение, может быть тогда фокус на вашем изображении. Эта ошибка возникает из-за фокуса. попробуйте это, это может быть работа. –

Смежные вопросы