2015-01-06 3 views
0

, 나는 응용 프로그램을 위챗 유사한 모든 활동의 하단에 버튼을 넣어하려고 위챗하기 내가 생각한 한 가지 방법은 단순히 각 활동의 하단에 <ImageButton>을 추가하는 것입니다.하지만 WeChat은 활동 사이를 스 와이프 할 수 있기 때문에 수행하지 않으며 onCreate이 트리거되지 않기 때문에 활동이 항상 스 와이프 또는 터치되었을 때 전환됩니다. 특정 버튼.안드로이드 레이아웃 : 이제</p> <p><img src="https://i.stack.imgur.com/AkUb8.png" alt="enter image description here"></p> <p>: 비슷한 하단에있는 버튼은 아래 그림에서 볼 수 있듯이 내 앱

저는 연구를 통해 split action bar 또는 ViewFlipper을 사용할 수 있음을 발견했습니다. WeChat과 같이 맨 아래에 단추가 항상 나타나기를 원하기 때문에 가로 막대 모드에서 단추가 작업 표시 줄로 다시 이동되므로 작업 표시 줄 분할이 문제가되지 않습니다. 내가 본 또 다른 옵션은 Tabbed이지만 인터페이스와 함께 보았을 때 WeChat과 달리 액션 바를 액티비티 기반으로 바꿀 수 있습니다.

질문 : 누구도이 기능을 구현하기 위해 WeChat이이 기능을 사용한다는 것을 알고 있습니까?

+0

조각 TabHost 사용 http://envyandroid.com/archives/326/align-tabhost-at-bottom 나는이 사용됩니다 위챗 무엇인지 잘 모릅니다 –

+0

을하지만, 확실히 당신은 사용하여 동일한 결과를 얻을 수 있습니다 "Tabhost". –

+0

모든 ImageButton에 대해 하나의 RelativeLayout을 수평으로 정렬하고 '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

하나의 아이디어는 응용 프로그램 전체에서 선호하는 일반적인 디자인을 포함하여 BaseActivity입니다. 다른 활동에서는 BaseActivity을 확장하십시오. 어떤 활동에서 Activity 클래스를 확장하여 LoginActivity과 같이 버튼을 표시 할 필요가없는 클래스를 확장 할 수도 있습니다.