2013-04-20 1 views
0

Я пытаюсь разработать приложение, используя библиотеку SlidingMenu Джереми Фейнштейна. Все, что я сделал правильно, как описано в инструкциях Гитуба. Все работает хорошо, но проблема в том, что когда я нажимаю на кнопку панели действий, чтобы открыть слайдер, он закрывает полный экран. Я хочу, чтобы он открывался наполовину открытым, как в слайдере Facebook в приложении Facebook. Мой код ниже:реализация jeremy feinstein's SlidingMenu

public class MainActivity extends SlidingFragmentActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 


    //Hide title bar 
    getSupportActionBar().setDisplayShowTitleEnabled(true); 

    //Enable home button 
    getSupportActionBar().setHomeButtonEnabled(true); 

    //Home as up display 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    // getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 


    setBehindContentView(R.layout.menu_frame); 

    //SlidingMenu menu=getSlidingMenu(); 
    SlidingMenu menu=new SlidingMenu(this); 
    //menu = new SlidingMenu(MainActivity.this); 
    menu.setMode(SlidingMenu.LEFT); 
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 
    setSlidingActionBarEnabled(true); 
    menu.setShadowWidth(5); 
    menu.setFadeDegree(0.0f); 
    menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT); 
    menu.setBehindWidth(10); 
    menu.setBehindOffset(10); 
    menu.setBehindScrollScale(0.25f); 
    menu.setMenu(R.layout.menu_frame); 


} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
     toggle(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 


} 

ответ

0

Вы можете использовать behindOffset, behindWidth или touchModeAbove. Если вы используете его как вид вы могли бы сделать это (в файле макета):

sliding:behindOffset="@dimen/YOUR_OFFSET" 
sliding:behindWidth="@dimen/YOUR_WIDTH" 
sliding:touchModeAbove="margin" 

Далее объяснил

touchModeAbove - перечисление, который обозначает, что часть экрана осязаемый, когда выше отображается вид. Маржа означает только левое поле. Полноэкранный режим означает весь экран. По умолчанию используется маржа.

behindOffset - измерение, представляющее количество пикселей, которое вы хотите, чтобы показанный выше вид отображался, когда отображается вид сзади. Значение по умолчанию равно 0.

behindWidth - измерение, представляющее ширину зазора. Значение по умолчанию - это ширина экрана (эквивалентная позадиOffset = 0).

+0

Большое спасибо за ваш ответ. Я использовал его в своем коде и его работе хорошо сейчас. – abhayd

-2

В коде:

// меню SlidingMenu = getSlidingMenu();
SlidingMenu menu = new SlidingMenu (this);

ТОЛЬКО УДАЛИТЬ // НА ПЕРВОЙ ЛИНИИ ПОТОМУ ЧТО В НЕМ НУЖДАЕТСЯ УСТАНОВЛЕННЫЙ ОБЪЕКТ.

УДАЛИТЕ ВТОРОЙ ЛИНИЮ, ЭТО ВСЕ. НА ВТОРОЙ ЛИНИИ ВЫ ИСПОЛЬЗУЕТЕ НОВЫЙ ОБЪЕКТ, И ЭТО НЕ НЕОБХОДИМО .... ОБЪЕКТ ОБЪЯВЛЕНИЯ МЕНЮ ПОЛУЧАЕТСЯ, ЧТОБЫ ВЫ МОЖЕТЕ ПОСМОТРЕТЬ В СОДЕРЖАНИИ СОДЕРЖАНИЯ.

Я ПОЛУЧИЛ ИСКУССТВЕННУЮ НЕИСПРАВНОСТЬ И РЕШИТЕ ​​ЭТО ОТ ЭТОГО ПУТИ.

+1

НЕТ ОБУВЬ, ПОЖАЛУЙСТА! –