1

Я хочу показать компоновку на элементах Pull of ActionBar/ToolBar. Этот макет должен наложить ActionBar/ToolBar, в других словах этот макет должен быть виден поверх ActionBar/Toolbar.Показать макет на Pull of ActionBar/ToolBar item

Это требование аналогично ящику уведомлений по умолчанию для Android.

У меня есть ToolBar и элемент на нем. Если я вытащил этот предмет, новый макет должен быть с вершины с фиксированной высотой, и этот макет можно закрыть, нажав на этот элемент ToolBar с эффектом pull.

Я попробовал раздвижную панель Pantel Umano не смог.

И я использовал DialogPlus библиотеки. Я приближаюсь к своему требованию. Использование DialogPlus может быть достигнуто нажатием элемента ToolBar, но эффект pull отсутствует.

Как показать/скрыть макет, используя эффект pull?

enter image description here

+0

Как вы его решили? –

+0

извините. Я не решил – DroidLearner

ответ

1

вот простой XML-файл

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:animateLayoutChanges="true" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#0061C2" 
     android:minHeight="?attr/actionBarSize" 
     app:popupTheme="@style/Theme.AppCompat.Light.DarkActionBar" 
     app:theme="@style/Toolbar" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <RelativeLayout 
     android:id="@+id/myLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="200dp" 
     android:background="#ffff7100" 
     android:visibility="gone"> 

    </RelativeLayout> 

</RelativeLayout> 

Панель инструментов behinf "myLayout", так что если "myLayout" виден скроет панель в вашей Яве, когда щелкнув по этому элементу

(findViewById(R.id.myLayout).setVisibility(View.VISIBLE); 

и будет отображаться макет, вы получите анимацию потому что я использую

android:animateLayoutChanges="true" 

добавить тот же элемент в нижней части myLayout и добавить в его onClickListener

(findViewById(R.id.myLayout).setVisibility(View.GONE); 

Вы можете сделать это с помощью панели инструментов

0

Чтобы сделать что-то в ответ на жестов GestureListener. В этом случае вы можете создать анонимный внутренний класс, или вы можете сразу реализовать SimpleGestureListener и в методе onFling вы можете закодировать свою логику для изменения макета.

public class MainActivity extends Activity implements 
    GestureDetector.OnGestureListener, 
    GestureDetector.OnDoubleTapListener{ 

private GestureDetectorCompat mDetector; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

... 
//other unimplemented methods.. 

@Override 
public boolean onFling(MotionEvent event1, MotionEvent event2, 
     float velocityX, float velocityY) { 
    //logic for layout change 
    return true; 
} 
} 
+0

@DroidLearner вам понравилось? –

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