2011-10-22 17 views
6

क्या कोई जानता है (या मुझे एक उदाहरण दिखा सकता है) मैं कैसे एक अनुप्रयोग विकसित कर सकता हूं जो कि हनीकोम्ब जीमेल की तरह व्यवहार करता है? मैं फ्रेम लेआउट के बीच कैसे जा सकता हूं और सामग्री को प्रदर्शित करने के लिए अपने आकार बदल सकता हूं। जैसे कि जब आप अपने संदेश पर क्लिक करते हैं और फिर खंड के लिए कमरे बनाने के लिए खंड तैरता है, और आपके बक्से वाले टुकड़े से गायब हो जाते हैं।हनीकॉम जीबी एप्लीकेशन की तरह

उत्तर

6

मुझे लगता है कि आप इसे सब दुखी करते हैं :) अपने घटकों के लिए एक लेआउट प्रदान करें, मैं क्षैतिज अभिविन्यास के साथ एक लीनियरआउट का सुझाव दूंगा। फिर आप इसमें तीनों टुकड़े जोड़ते हैं, और आप तीसरे को छुपाते हैं - जिसमें संदेश होता है।

FolderListFragment folderListFragment = new FolderListFragment(); 
MessageListFragment messageListFragment = new MessageListFragment(); 
MessageFragment messageFragment = new MessageFragment(); 

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.add(container_view_layout, folderListFragment); 
ft.add(container_view_layout, messageListFragment); 
ft.add(container_view_layout, messageFragment); 
ft.hide(messageFragment); 
ft.commit(); 

फिर जब आप संदेश टुकड़ा दिखाना चाहते हैं:

void showMessage(Message message) { 
    // Initialize messageFragment 
    messageFragment.setMessage(message); 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left); 
    ft.hide(folderListFragment); 
    ft.show(messageFragment); 
    ft.commit(); 
} 

void showFolders() { 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); 
    ft.hide(folderListFragment); 
    ft.show(messageFragment); 
    ft.commit(); 
} 

और एनिमेशन फ़ोल्डर टुकड़ा के लिए slide_in_left होगा, तो आप दूसरों (400 घटक की चौड़ाई है) प्राप्त कर सकते हैं के लिए:

<set> 
    <objectAnimator 
     android:propertyName="x" 
     android:duration="500" 
     android:valueFrom="-400" 
     android:valueTo="0" 
     android:valueType="intType"/> 
</set>