2014-11-03 6 views
0

Мое приложение в настоящее время выглядит следующим образом:Android: ScrollView блокировки кнопок от RelativeLayout

enter image description here

Когда я нажимаю на button, цвет границы меняется на зеленый, как показано выше. Я добавил scrollview для моего списка слов, как показано на правой стороне изображения. Проблема в том, что этот scrollview охватывает почти всю ширину экрана, и я не могу щелкнуть по первым трем строкам buttons.

Краткое описание макета:

Я создал relative layout. 25 buttons приведены в этом relative layout. Тогда же в relative layout я создал scrollablelinear layout, содержащий 20 textviews

Может кто-то пожалуйста, помогите мне исправить этот макет? Я хочу иметь возможность нажимать на все buttons и scrollview не блокировать buttons.

И я подумал, что это может быть хорошей идеей поставить 25 buttons в свои собственные relative layout в главном relative layout. Кто-нибудь знает, как я могу это сделать, не переделывая весь макет?

Кроме того, если у вас есть какие-либо советы по правильному кодированию макета, пожалуйста, дайте мне знать. Я довольно хорошо знал программирование на Android и не знаю, следует ли мне использовать relative layout vs linear layout vs frame layout или match_parent vs fill_parent vs wrap_content. Пожалуйста, дайте мне знать, если я злоупотребляю любым из них.

<?xml version="1.0" encoding="utf-8"?> 
<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="match_parent" 
    tools:context=".Game" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="@dimen/size" 
     android:layout_height="@dimen/size" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="18dp" 
     android:background="@drawable/button" 
     android:onClick="ButtonOnClick" /> 

.  
. (Buttons 2 - 24) 
.  

    <Button 
     android:id="@+id/button25" 
     android:layout_width="@dimen/size" 
     android:layout_height="@dimen/size" 
     android:layout_alignBaseline="@+id/button24" 
     android:layout_alignBottom="@+id/button24" 
     android:layout_alignLeft="@+id/button20" 
     android:background="@drawable/button" 
     android:onClick="ButtonOnClick" /> 

    <ScrollView 
     android:id="@+id/scrollable" 
     android:layout_width="wrap_content" 
     android:layout_height="150dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:scrollbars="vertical" > 

     <LinearLayout 
      android:id="@+id/ll" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="300dp" 
      android:layout_marginTop="20dp" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/word1" /> 

      . 
      . (TextViews 2 - 19) 
      . 

      <TextView 
       android:id="@+id/textView20" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/word20" /> 
     </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 
+0

кнопку Put в другой относительной макете и сделать Scrollview справа от него. Просто предложение, попробуйте. – Chitrang

+0

га, я на самом деле предложил сделать это в своем посте. Я пытаюсь, но это не работает. – user2456977

+0

Можете ли вы опубликовать весь свой xml, чтобы я мог попробовать его. Я частично скопировал, но требует много изменений. – Chitrang

ответ

0

Используйте LinearLayout вместо RelativeLayout в качестве верхнего расположения и сделать его андроид: ориентация = «горизонтальные».

Затем поместите все свои кнопки в RelativeLayout с андроидом: layout_weight = "1" и android: layout_width = "0dp".

Также поместите ScrollView во второй RelativeLayout с шириной «wrap_content».

Вот структура:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 
    <RelativeLayout 
     android:layout_widtht="0dp" 
     android:layout_heigh="fill_parent" 
     android:layout_weight="1"> 

     All buttons go here... 

    </RelativeLayout> 

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

     Scroll view goes here... 

    </RelativeLayout> 
</LinearLayout> 
Смежные вопросы