마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 4.1.2 에서 머티리얼 디자인 사용 할 수 있나요?

0 추천

MainActivity.java

 toolbar = (Toolbar) findViewById(R.id.toolbar);

        setSupportActionBar(toolbar);

        dlDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);

        dtToggle = new ActionBarDrawerToggle(this, dlDrawer, R.string.app_name, R.string.app_name);
        dlDrawer.setDrawerListener(dtToggle);

activity_main.xml

<LinearLayout 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:orientation="vertical">

    <include layout="@layout/toolbar"/>

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#fff"/>

        <View
            android:id="@+id/drawer"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="#fff" />


    </android.support.v4.widget.DrawerLayout>

</LinearLayout>
toolbar.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary">
</android.support.v7.widget.Toolbar>

style.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

        <!-- Customize your theme here. -->
    </style>

</resources>
build.gradle
 
compileSdkVersion 21
buildToolsVersion "21.1.2"
 
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
 
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.android.support:appcompat-v7:22.0.0'
}

현재 이런식으로 구현이 되어있는데요. 적용이 안돼네요..

개발환경은 안드로이드 스튜디오입니다.

뭐가 잘못된건가요?

우랴 (3,680 포인트) 님이 2015년 3월 19일 질문

1개의 답변

0 추천
 compile 'com.android.support:support-v4:22.0.0'
요건 삭제하셔도 됩니다.
appcompat 에 포함되어 있어서..
 
Theme.AppCompat 로 테마 잡으면 아마도 기기의 OS가 지원하는 테마로 자동 설정될거에요.
고로 사용하는 기기의 OS가 롤리팝이 아니면 이전 holo 테마로 나오는게 맞을겁니다.
 
롤리팝에서 구동하시면 메트리얼 디자인 적용된거 확인 하실 수 있을거에요.
 
Toolbar는 정상 작동 할거에요. 뎁스 효과나 전역 컬러 지정하는것 등이안될거고..
이드로이드 (22,930 포인트) 님이 2015년 3월 19일 답변
이드로이드님이 2015년 3월 19일 수정
navigation drawer 할때 구글마켓보면 toggle 버튼 화살표로 바뀌는 애니메이션은 안되나요??
그건 머트리얼 테마 아니고 홀로테마입니다.
toolbar에 style 적용해 보세요.
toobar 에 아래 속성 추가하시고
style="@style/DarkActionbarStyle"

style.xml에
 <style name="DarkActionbarStyle" parent="@style/Widget.AppCompat.Toolbar">           
        <item name="android:elevation">8dp</item>
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>      
    </style>
이렇게 추가해보세요.

머트리얼은 상단을 다 덥는게 기본 가이드이기 때문에 그 효과 없어졌어요.
compile 'com.android.support:appcompat-v7:21+' 로 바꾸세요.
22버전에서는 에니메이션 좌측 토글버튼이 사라졌네요.
이후를 생각하면 좌측 버튼토글에 미련을 버리시는것도 좋을듯 합니다.
<item name="android:elevation">8dp</item> 이 부분 타겟이 안맞습니다.
아 그 기능이 사라졌나요?? 흠.. 그럼 이후를 생각해서 구현할 필요성이 없을것같네요..
appcompat 21로 바꾸고 해보세요.
<style name="DarkActionbarStyle" parent="@style/Widget.AppCompat.Toolbar">           

        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>      
    </style>

이렇게만 하셔도 됩니다.
넵 한번 해보겠습니다. 답변 감사드립니다.
...