2016-11-16 6 views
0

Я хочу создать прокручиваемую RelativeLayout, где я могу создавать кнопки с позициями x и y и пользовательской шириной и высотой. Вот код, я получил до сих пор XML:Сделать RelativeLayout прокручиваемым

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/buttonDel" 
    android:fillViewport="true"> 
    <LinearLayout android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/RL"> 
     </RelativeLayout> 
    </LinearLayout> 
</ScrollView> 

Java:

RelativeLayout linearLayout; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main3); 

    linearLayout = (RelativeLayout) findViewById(R.id.RL); 
    addButton(); 
} 

private void addButton() { 

    for(int i = 0; i < 20; i++) 
     for(int j = 0; j < 4; j++) 
     { 
      Button but = new Button(this); 
      but.setX(j * 200); 
      but.setY(i * 200); 
      but.setText("B" + i); 
      linearLayout.addView(but, 200, 200); 
     } 
    } 

Это приведет к чему-то, что я хочу, за исключением прокрутки части. Я не знаю, почему ScrollView не работает.

Screen so far.

After I changed ScrollView layout_height="match_parent" to "warp_content"

+0

попытки Scrollview только с одним ребенком – khakishoiab

+0

использовать ArrayAdapter и ListView вместо –

+0

Или в RecyclerView и менеджером компоновки сетки –

ответ

1
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ScrollView01" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" 
    android:scrollbars="none" > 

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

Однако правильный путь для создания необходимого структура предназначена для создания gridview или listview. Используйте один ребенок для просмотра прокрутки, чтобы вести себя правильно.

+0

Нет удачи , тот же результат, что и мой. – Robert

+0

https://puu.sh/skfDS/62ef9c29be.png – Robert

+0

попробуйте обернуть содержимое вместо этого и закрыть все теги, определенно работает @ Robert – khakishoiab

1

Изменение ScrollView высоты от "match_parent" до "wrap_content" это должно решить проблему:

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/buttonDel" 
    android:fillViewport="true" 
    > 

... 
+0

Баков для ответа, но теперь только первая строка не отображается – Robert