2015-01-06 3 views
0

Для моего приложения, я пытаюсь поставить кнопки в нижней части всех видов деятельности, аналогичных WeChat приложения, как можно увидеть на изображении ниже:Android макета: кнопки в нижней части аналогична WeChat

enter image description here

сейчас один из способов, я думал, просто добавляет <ImageButton> s в нижней части каждого действия, но я не думаю, что WeChat делает это, потому что вы можете прокручивать между действиями, и нет никакого onCreate, а действия всегда есть, которые просто переключаются, когда их прокручивают или касаются конкретная кнопка.

Я исследовал и выяснил, что можно использовать split action bar или даже ViewFlipper. Разделение панели действий не может быть и речи, поскольку кнопка будет перенесена обратно в панель действий, например, в ландшафтном режиме, так как я хочу, чтобы кнопки всегда отображались внизу, как WeChat. Другой вариант, который я видел, это интерфейс Tabbed, но я видел его, он может появиться под панелью действий в отличие от WeChat, где даже панель действий изменяется в зависимости от активности.

Вопрос: Кто-нибудь знает, что использует WeChat для этой функции, чтобы я мог реализовать то же самое?

+0

Используйте фрагмент TabHost: http://envyandroid.com/archives/326/align-tabhost-at-bottom –

+0

Я не знаю, что WeChat используется для этого, но наверняка вы можете получить тот же результат, используя "Tabhost". –

+0

Один RelativeLayout горизонтально для всех кнопок ImageButtons и выровняйте его снизу, также вы можете установить цвет фона для «RelativeLayout» – Xcihnegn

ответ

1
here is code main class 


public class TabSample extends TabActivity { 
    /** Called when the activity is first created. */ 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     setTabs(); 

    } 

    private void setTabs() { 

     addTab("Wechat", R.drawable.tab_home, ShowList.class); 
     addTab("Social", R.drawable.tab_search, UploadVideo.class); 

     addTab("Contact Us", R.drawable.tab_home, Contactus.class); 
     addTab("Setting", R.drawable.tab_search, DoNotDo.class); 




    } 

    private void addTab(String labelId, int drawableId, Class<?> c) { 
     TabHost tabHost = getTabHost(); 
     Intent intent = new Intent(this, c); 
     TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 

     View tabIndicator = LayoutInflater.from(this).inflate(
       R.layout.tab_indicator, getTabWidget(), false); 
     TextView title = (TextView) tabIndicator.findViewById(R.id.title); 
     title.setText(labelId); 
     ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon); 
     icon.setImageResource(drawableId); 

     spec.setIndicator(tabIndicator); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 
    } 
} 

here is xml 

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:background="#ffffff" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" /> 

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="2dp" 
      android:layout_weight="0" /> 

    </LinearLayout> 

</TabHost> 
+0

Так же, как FYI, TabActivity устарел на уровне api 13. Документы предлагают использовать фрагменты, которые поддерживаются в библиотеке поддержки v4. http://developer.android.com/reference/android/app/TabActivity.html – Gravitoid

1

One Idea is create BaseActivity, в котором содержится общий дизайн, который вы предпочитаете во всем приложении. В других видах деятельности, продлить BaseActivity. Вы также можете расширить Занятие класс в некоторых мероприятиях, где нет необходимости показывать кнопки, такие как LoginActivity.

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