2015-12-03 70 views
1

我正在嘗試爲我的應用程序創建登錄頁面。我在Android-studio創建活動時從選項中選擇了登錄活動。這是我得到那麼:如何在登錄活動中自定義標題欄

enter image description here

我可以自定義的電子郵件/密碼字段,並從activity_login.xml文件的登入按鈕。但是,我還需要自定義標題欄 - 例如,將標題對齊到中心,向標題欄添加後退按鈕以及一些顏色修改。

問題是我找不到任何地方修改它的選項。下面是activity_login.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:gravity="center_horizontal" 
android:orientation="vertical" 
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=".LoginActivity"> 

<!-- Login progress --> 
<ProgressBar android:id="@+id/login_progress" style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="8dp" 
    android:visibility="gone" /> 

<ScrollView android:id="@+id/login_form" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/email_login_form" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <AutoCompleteTextView 
       android:id="@+id/email" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/prompt_email" 
       android:inputType="textEmailAddress" 
       android:maxLines="1" 
       android:singleLine="true" /> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <EditText android:id="@+id/password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/prompt_password" 
       android:imeActionId="@+id/login" 
       android:imeActionLabel="@string/action_sign_in_short" 
       android:imeOptions="actionUnspecified" 
       android:inputType="textPassword" 
       android:maxLines="1" 
       android:singleLine="true" /> 

     </android.support.design.widget.TextInputLayout> 

     <Button android:id="@+id/email_sign_in_button" style="?android:textAppearanceSmall" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="16dp" 
      android:text="@string/action_sign_in" 
      android:textStyle="bold" /> 

    </LinearLayout> 
</ScrollView> 

+0

你知道關於工具欄嗎? –

+0

好的,我現在正在嘗試。 –

+0

現在看到詳細的答案.. –

回答

1

你應該在 'styles.xml' 使用'NoActionBar風格。 在佈局中創建工具欄並將子視圖添加到工具欄中,根據需要設置標題並進行修改。

0

更改標題在AndroidManifest.xml中

+0

是的,那樣我就可以改變標題。但我需要完全自定義,比如將文本對齊到中心,在標題欄的一個角落添加一個按鈕等。 –

+0

@Akeshwar好了,然後一個好的方法是使用「navigationDrawer」默認活動創建一個新項目,以確定它是如何完成的。特別是與「工具欄」 – Fundhor

-1

你必須使用Android空活動,然後使用線性佈局,您可以創建或由你自己定製自己的標題欄。

+0

是的,我可以做到這一點,但我將不得不再次寫很多代碼來實現登錄活動。這就是我選擇登錄活動的原因。 –

0

您可以通過替換操作欄來添加自定義標題欄。 這裏是

1,創建一個新的XML,以及如何讓..命名custom_actionbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/black_pattern" > 

    <TextView 
     android:id="@+id/title_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:textAllCaps="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#fff" 
     android:textStyle="bold" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="35dp" 
     android:layout_height="35dp" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="8dp" 
     android:src="@drawable/ic_launcher" /> 

    <ImageButton 
     android:id="@+id/imageButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="8dp" 
     android:background="@null" 
     android:src="@android:drawable/ic_menu_rotate" /> 

</RelativeLayout> 
  • 在您的活動代碼

    然後讓你的動作條和更換與此自定義佈局

    ActionBar mActionBar = getActionBar(); mActionBar.setDisplayShowHomeEnabled(false); mActionBar.setDisplayShowTitleEnabled(false); LayoutInflater mInflater = LayoutInflater.from(this); View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null); TextView mTitleTextView = (TextView)mCustomView.findViewById(R.id.title_text); mTitleTextView.setText("My Own Title"); mActionBar.setCustomView(mCustomView); mActionBar.setDisplayShowCustomEnabled(true);

  • thisthisthis瞭解更多詳情。