Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Zilon
5 / 5 / 0
Регистрация: 05.11.2010
Сообщений: 60
#1

How to set view position on parent (Android) - Android

17.01.2011, 15:39. Просмотров 1858. Ответов 0
Метки нет (Все метки)

Hello to everybody.
Here is my problem:
In my android application I need to use custom menu. In xml I make menu layout (RelativLayout)
and inflate it on application start, then add it to parent layout, which was set by setContentView().
So I have something like this:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
   private void initMenu()
    {
        LayoutInflater inflanter = getLayoutInflater(); 
        menu = (RelativeLayout) inflanter.inflate(R.layout.menu, null, false);
        
        LayoutParams param = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 
            ViewGroup.LayoutParams.WRAP_CONTENT);
        
        menuParent.addView(menu, param);    
        
        hideMenuAnim = AnimationUtils.loadAnimation(this, R.anim.menu_hide);
        showMenuAnim = AnimationUtils.loadAnimation(this, R.anim.menu_show);
    }
But I can't to set position for menu layout (using menu.layout(l, t, r, b).
menu.layout() don't do anything during initialization. I try to call layout() in
protected void onStart(), protected void onResume(), public void onChildViewAdded(View parent, View child) methods.
I try to create my custom class "class MenuLayout extends RelativeLayout{ ..." and set position in onLayout method:
Java
1
2
3
4
5
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        Rect posRect = new Rect();
        callback.getPosition(posRect);
        super.onLayout(changed, posRect.left, posRect.top, posRect.right, posRect.bottom);
        }
But position of menu don't change.
menu.layout() begin to work later when, as I understand, parrent view is completely initialized because
next code works normally (position is changed):
Java
1
2
3
4
5
6
7
8
    public boolean onKeyDown (int keyCode, KeyEvent event)
    {
        if(KeyEvent.KEYCODE_DPAD_UP == keyCode)
        {
                menu.layout(menuPosRect.left, menuTopPos, menuPosRect.right, menuBottomPos);
        }
    ...
    }
PS: layout_graviti and graviti works very funny.., as always ))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2011, 15:39     How to set view position on parent (Android)
Посмотрите здесь:

android Listview Center position Android
Android Получить id вместо position в OnItemClickListener
Expandable List View Android Android
Android Android.support.v4.view.ViewPager одним xml+java файлом
Android В чем разница (View view) и (View v)
Web view Android studio Android
Кто является parent-ом layout? Android
Android slide view Android
Public void onClick(View view) Android
Android ClassNotFoundException. android.view.fragment. как лечить?
Hierarchical Parent родительский элемент Android
Error retrieving parent for item: No resource found that matches the given name Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru