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

안드로이드 커스텀 타이틀에 빈 공간이 남아요.

0 추천

질문은 처음이지만 제가 어떻게 할수 없어서 질문을 드립니다..

현재 개발버전은 4.4.2 입니다. 이클립스 기반 개발중입니다.

커스텀 타이틀로 배경색을 바꾸는데에는 성공했습니다.

 

그런데 문제가 생겼습니다.

엑티비티 입력부분을 이렇게 했고요.
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
커스텀 타이틀이라는 레이아웃을 만들었습니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#34c8b3"
    android:orientation="horizontal" >
    <TextView 
        android:id="@+id/title_text"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        >
    </TextView>

</LinearLayout>

맨 상위 레이아웃에 배경을 주었죠.

메니페스트 파일에 

        <activity android:name=".파일이름"
                  android:label="@string/app_name"
                  android:configChanges="orientation|keyboardHidden"
                  android:theme="@android:style/Theme"
                  >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

보시다시피 테마도 추가하였습니다. 

정상적으로 작동은 하는것 같은데, 문제는 

표시된 부분처럼 저렇게 왼쪽에 뭔가 회색이 남는다는 겁니다.

다른걸로 시도해봐도 그렇고요. 

저 거슬리는 회색을 연두색으로 덮어버리고 싶은데 방법을 도무지 모르겠습니다.

이런 현상은 저만겪는 건지 다른분들도 겪어 본건지 모르겠네요.

도와주세요 제발 ㅠㅠ

익명사용자 님이 2016년 10월 5일 질문

1개의 답변

0 추천
 
채택된 답변
View v = LayoutInflater
        .from(ab.getThemedContext())
        .inflate(R.layout.actionbar_discard_done, null);
ActionBar.LayoutParams params = new ActionBar.LayoutParams(
        ActionBar.LayoutParams.MATCH_PARENT,
        ActionBar.LayoutParams.WRAP_CONTENT);
ab.setCustomView(v, params);

위 코드로 해보시기 바랍니다.
ShakeJ (6,320 포인트) 님이 2016년 10월 5일 답변
ab는 어디에서 오는 변수입니까?
그리고 어느위치에 코드를 입력해야 합니까?
appcompat 사용중이시라면 getSupportActionBar() 입니다~
private void setCustomActionbar() {
        ActionBar actionBar = getActionBar();
       
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);
       
        View mCustomView = LayoutInflater.from(this).inflate(R.layout.custom_title, null);
        actionBar.setCustomView(mCustomView);
        ActionBar.LayoutParams params = new ActionBar.LayoutParams(
                ActionBar.LayoutParams.MATCH_PARENT,
                ActionBar.LayoutParams.MATCH_PARENT);
        actionBar.setCustomView(mCustomView, params);
       
    }

이런식으로 해결했습니다. 그러니까 타이틀의 개념으로 생각할게 아니라 엑션바로 생각을 하고 접근을 하는거였어요. 좋은 참고가 되었습니다 정말 감사합니다.
한가지만 더 질문하겠습니다. 혹시 더 위에 있는 검은색바(시간이 표시되는 부분)도 꾸미는것이 가능한가요? 가능하다면 어떻게 해야하나요?
...