将自定义 ActionBar 重力设置为 RIGHT

阿里瑞扎吡

abs_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/parentlay"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/mytext"
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:text="test"
        android:textColor="#474545"
        android:textSize="18sp" />

</LinearLayout>

当我使用此代码设置自定义 ActionBar 时,一切正常,它显示在右侧:

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(R.layout.abs_layout);

但是,当我尝试使用 inflater 更改自定义 Actionbar 上的 textview 平铺时,文本会留在左侧:

   LayoutInflater mInflater = getLayoutInflater();

    View mCustomView = mInflater.inflate(R.layout.abs_layout, null);
    TextView tv = mCustomView.findViewById(R.id.mytext);
    tv.setText("test");
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(mCustomView);

我希望它在右侧。

安卓极客

试试这个:

样式文件

<resources>

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
</style>

 <style name="CustomTheme" parent="Theme.AppCompat.Light">

    <item name="contentInsetStart">0dp</item>
    <item name="contentInsetEnd">0dp</item>
  </style>

</resources>

custom_action_bar_layout.xml

<TableRow>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/back"
        android:layout_gravity="center_vertical"
        android:background="@android:color/transparent"
        android:id="@+id/action_bar_back"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:gravity="center_horizontal"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold"
        android:padding="10dp"
        android:layout_alignParentTop="true"
        android:layout_weight="1"
        />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/forward"
        android:id="@+id/action_bar_forward"
        android:layout_gravity="center_vertical"
        android:background="@android:color/transparent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />


      </TableRow>

   </TableLayout>

Android 自定义操作条码

package com.journaldev.customactionbar;

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setDisplayShowCustomEnabled(true);
    getSupportActionBar().setCustomView(R.layout.custom_action_bar_layout);
    View view =getSupportActionBar().getCustomView();

    ImageButton imageButton= (ImageButton)view.findViewById(R.id.action_bar_back);

    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    ImageButton imageButton2= (ImageButton)view.findViewById(R.id.action_bar_forward);

    imageButton2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(),"Forward Button is clicked",Toast.LENGTH_LONG).show();
        }
    });
}

}

注意:在 AndroidManifest.xml 的 application 标签内添加以下行。

  android:theme="@style/CustomTheme"

它可以帮助你

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章