참고 : 기존 질문에서 '오른쪽에 스낵바 동작 맞추기'라는 제목이 붙어 있지만 본인의 질문에 해당하지 않습니다.태블릿에서 Android 스낵바 동작이 올바르지 않음
재료 설계 사양에 따르면 스낵바의 동작은 오른쪽/끝 맞춰 져야합니다. 작은 화면의 기본 동작은 예상대로 작동합니다 (화면의 전체 너비, 동작이 화면 오른쪽에 정렬 됨). 그러나 태블릿에서는 설명/제목 텍스트 옆에 조치가 일부 보류되어 있습니다. 여기 예 :
Snackbar action position example
난 진짜 넥서스 9 (API 25)에 본, 3 에뮬레이터 (API 22, 23, 24) 가로 및 세로 모두했습니다.
안드로이드 소스 (design_layout_snackbar_include.xml)의 snackbar 내용을위한 xml 레이아웃은 동작 버튼이 오른쪽/끝 맞춰 져야 함을 암시하는 것처럼 보입니다. 왜 내가 이것을 보지 못하는 지에 대해 당황스러워합니다.
저는 회사에서 개발중인 응용 프로그램 중 하나에서이 문제가 발생했다는 것을 처음 보았습니다. 이전에 링크 된 예제 이미지를 생성하는 데 사용했던 문제를 재현 할 테스트 응용 프로그램을 만들었습니다. 모든 앱은 "Hello World!"라고 표시됩니다. 뒤로 버튼을 누르면 작업을 확인하는 스낵 바가 표시됩니다. 내 테스트 활동은 다음과 같습니다
package au.com.test.snackbartest;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onBackPressed()
{
Snackbar snackbar = Snackbar.make(findViewById(R.id.activity_main), "Exit?", Snackbar.LENGTH_LONG);
snackbar.setAction("EXIT", new View.OnClickListener()
{
@Override
public void onClick(View v)
{
finish();
}
});
snackbar.show();
}
}
레이아웃 XML은 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/activity_main"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="au.com.test.snackbartest.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
</RelativeLayout>
이 동작에 영향을주지 않습니다 상대 레이아웃 대신 코디네이터 레이아웃을 사용. 또한 AppCompatActivity 대신 Activity를 확장해도 아무런 차이가 없습니다.
제 질문은 스낵바를 어떻게 든 잘못 사용하고있는 것입니까, 안드로이드의 버그입니까, 아니면 개발자가 설계 스팩바 레이아웃으로 완벽하게 구현할 수있는 디자인 사양입니까?
모든 도움이나 설명을 제공해 주시면 대단히 감사하겠습니다.
디자인 지원 라이브러리에 버그가있는 경우 [Material components Github repository] (https://github.com/material-components/material-components-android)에 버그가 있습니다. 지원 라이브러리 버전 25.1.0의 최근 회귀로 의심됩니다. – ianhanniballake
당신이 옳다고 생각합니다. 지원 라이브러리를 다시 25.0.1로 되돌릴 때 예상되는 동작을 봅니다. https://code.google.com/p/android/issues/list에서 버그가보고 된 것 같습니다. – phil44
readme는 매우 명확합니다 : "안드로이드 용 Material Components는 Android SDK의 일부로 계속 출시 될 Android Design Support 라이브러리 (DesignLib)를 기반으로하며 개발은 GitHub에서 이루어지며 안정 버전은 Android SDK에 동기화됩니다 SDK의 출시 일정에 따라 " – ianhanniballake