没有使用NavigationDrawer android设置ActionBar Logo的位置

时间:2018-03-08 07:22:55

标签: android android-actionbar android-navigation-drawer

我正在使用导航抽屉,并希望在导航抽屉图标的右侧放置一个启动器图标,并在ActionBar中的启动器图标右侧放置一个标题。我试过这个但没有得到预期的结果。

图片在这里:

enter image description here

我正在使用

actionbar.setLogo(imageId); //to set the launchericon
actionbar.setTitle("home"); //to set the title

但问题是,无法在ActionBar中设置启动器图标位置。

请帮帮我。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

我希望您的意思是说自定义工具栏没有显示您的工具栏徽标。可能的解决方法是<ImageView>到自定义工具栏本身并设置图像。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary">
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/my_custom_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_custom"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Custom Title"
        android:id="@+id/custom_title"
        android:layout_toRightOf="@id/menu_icon"/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>

请注意,如果您希望标题位于中心,您还可以将android:centerHorizontal="true"添加到textview。接下来声明工具栏并通过id

在所需文件中调用textview
TextView customTitle = (TextView) findViewById(R.id.custom_title);
customTitle.setText("My Custom Title");

我们在xml中定义了getSupportActionBar().setLogo(R.mipmap.ic_launcher);,而不是ImageView cumstomIcon = (ImageView) findViewById(R.id.my_custom_icon); customIcon.setImageResource(R.drawable.some_image); 。现在在java中使用此代码。

fn parse_range(string_value: &str) -> Vec<u8> {
    let pos = string_value.find(|c| c == '-').expect("No valid string");
    let (first, second) = string_value.split_at(pos);

    let first: u8 = first.parse().expect("Not a number");
    let second: u8 = second[1..].parse().expect("Not a number");

    { first..second + 1 }.collect()
}

您也可以直接在xml中设置图像,但是如果需要保持差异。各种活动的图像,然后以编程方式设置图像.. 任何疑问都会发表评论!

答案 1 :(得分:0)

使用以下代码在 ActionBar 上设置logotitle

结果/输出:

http://java-performance.info/over-32g-heap-java/

<强> CODE:

    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.mipmap.ic_launcher);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setTitle("Home");

完整代码:

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

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

    //Here is the code
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.mipmap.ic_launcher);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setTitle("Home");


    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });