0

Я попытался изменить положение X кнопок, он работает, но кнопки затем попадают в заголовок HorizontalScrollView. Все, что я хочу сделать, это добавить расстояние между кнопками.Добавить расстояние между кнопками в LinearLayout, которое находится внутри HorizontalScrollView

Вот код, я использую программно отобразить кнопки:

@TargetApi(21) 
private void loadProfiles() { 
    HorizontalScrollView scrollView = (HorizontalScrollView) findViewById(R.id.horizontalScrollView); 
    LinearLayout layout = (LinearLayout) scrollView.findViewById(R.id.scrollLinear); 
    if(getFilesDir().listFiles().length != 0) { 
     for(File file : getFilesDir().listFiles()) { 
      ImageButton button = new ImageButton(this); 
      button.setLayoutParams(new ActionBar.LayoutParams(150, 150)); 
      button.setY(35); 
      button.setBackground(getResources().getDrawable(R.drawable.roundedbutton, getTheme())); 
      layout.addView(button); 
     } 
    } 
} 

Вот HorizontalScrollView:

<HorizontalScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="100dp" 
    android:background="@drawable/bar" 
    android:id="@+id/horizontalScrollView" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" > 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/scrollLinear"></LinearLayout> 
</HorizontalScrollView> 

Вот картина того, что кнопки в настоящее время выглядит следующим образом:

Picture

ответ

1
ImageButton button = new ImageButton(this); 
     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(150, 150); 
     layoutParams.setMargins(10,0,0,10); 
     button.setLayoutParams(layoutParams); 
     button.setY(35); 
     button.setBackground(getResources().getDrawable(R.drawable.roundedbutton, getTheme())); 
     layout.addView(button); 

Это должно работать

+0

Я попытался использовать 'ActionBar.LayoutParams params = new ActionBar.LayoutParams (150, 150); params.setMargins (10, 0, 0, 10); button.setLayoutParams (params); 'но это не сработало ни –

+0

Вы пытались изменить ActionBar.LayoutParams на LinearLayout.LayoutParams? Однако это не имеет значения. –

+0

Правильное использование было LinearLayout.LayoutParams, да. Спасибо –

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