Как добавить пробел между кнопками вкладок в Android? - PullRequest
4 голосов
/ 26 мая 2011

Мне нужно разделить кнопки табуляции пробелом, я попытался установить поля для представлений, а затем добавить их в качестве вкладок, но это не работает, я также подумал о добавлении пустого представления в качестве разделителя, но еще не пробовал, Есть ли какой-либо стандартный способ сделать это, или любой твик, который может достичь того же эффекта?

Спасибо!

Ответы [ 2 ]

21 голосов
/ 26 мая 2011

Вот путь:

TabWidget tabWidget = (TabWidget) findViewById(android.R.id.tabs);
final int tabChildrenCount = tabWidget.getChildCount();
View currentView;
for (int i = 0; i < tabChildrenCount; i++) {
    currentView = tabWidget.getChildAt(i);
    LinearLayout.LayoutParams currentLayout =
        (LinearLayout.LayoutParams) currentView.getLayoutParams();
    currentLayout.setMargins(0, 5, 5, 0);
}
tabWidget.requestLayout();
1 голос
/ 02 августа 2012

Это действительно хорошее решение даже для моей проблемы! Большое спасибо за это! Я использовал его, чтобы реализовать пространство перед первым и последним элементом в виджете, чтобы иметь возможность прокручивать их, видимые по центру, без добавления дополнительных (и мешающих, потому что виджет не ожидает таких глупых вещей) невидимых кнопок.

    //pump up space for first entry on the left and last entry on the right!
    Display display = getWindowManager().getDefaultDisplay();
    //Point size = new Point();
    int width = display.getWidth();

    View currentView = mTabHost.getTabWidget().getChildAt(0);
    LinearLayout.LayoutParams currentLayout = (LinearLayout.LayoutParams) currentView.getLayoutParams();
    currentLayout.setMargins(currentLayout.leftMargin + width/2, currentLayout.topMargin, currentLayout.rightMargin, currentLayout.bottomMargin);
    currentView = mTabHost.getTabWidget().getChildAt(mTabHost.getTabWidget().getChildCount()-1);
    currentLayout = (LinearLayout.LayoutParams) currentView.getLayoutParams();
    currentLayout.setMargins(currentLayout.leftMargin, currentLayout.topMargin, currentLayout.rightMargin  + width/2, currentLayout.bottomMargin);      
    mTabHost.getTabWidget().requestLayout();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...