我正在如下创建标题栏,“主页”和“抽屉”图标将根据案例设置可见/消失。 如何使文本视图与“主页” /“抽屉”图标不重叠?
这就是我的代码所需要的,我手动将文本视图边距设置为主页和抽屉图标,但是,在隐藏主页/抽屉图标的情况下,文本仍然保持长的样子,如出现“主页”按钮。如何根据可用空间将文本视图完美地换行?
ListingTag.find_or_create_by(listing_id: listing.id, tag_id: tag.id)
答案 0 :(得分:0)
替换TextView和use startOf and EndOf instead of LeftOf and rightOf
<TextView
android:id="@+id/actionbar_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="105dp"
android:layout_toRightOf="@id/actionbar_backbutton"
android:layout_toLeftOf="@id/actionbar_homebutton"
android:background="?attr/actionBarItemBackground"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="@string/Easybook_com"
android:textColor="@color/colorBlackText"
android:textSize="20sp" />
答案 1 :(得分:0)
您可以将TextView设置在两个按钮之间的空间中,如下所示:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/actionbar_backbutton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside"
android:src="@drawable/ic_arrow_back_black_24dp" />
<ImageButton
android:id="@+id/actionbar_homebutton"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:layout_toLeftOf="@+id/actionbar_drawerbutton"
android:layout_alignParentTop="true"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside"
android:src="@drawable/ic_home_black" />
<ImageButton
android:id="@+id/actionbar_drawerbutton"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside"
android:src="@drawable/ic_drawer" />
<TextView
android:id="@+id/actionbar_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="105dp"
android:layout_toRightOf="@id/actionbar_backbutton"
android:layout_toLeftOf="@id/actionbar_homebutton"
android:background="?attr/actionBarItemBackground"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="@string/Easybook_com"
android:textColor="@color/colorBlackText"
android:textSize="20sp" />
</RelativeLayout>
答案 2 :(得分:0)
在TextView中同时使用startOf,leftOf和endOf,rightOf。
android:layout_toRightOf="@id/actionbar_backbutton"
android:layout_toStartOf="@id/actionbar_backbutton"
android:layout_toLeftOf="@id/actionbar_homebutton"
android:layout_toEndOf="@id/actionbar_homebutton"
答案 3 :(得分:0)
我认为您正在使其变得更加复杂。您也可以像这样执行您的需求,您与活动xml无关。
现在,在您活动的onCreate中:
setTitle("Your Title");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
然后,为菜单实现这两个默认方法,
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_view, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
case R.id. actionbar_drawerbutton:
//your code
break;
case R.id. actionbar_reddot:
//your code
break;
}
return super.onOptionsItemSelected(item);
}
现在您必须像这样在res/menu/menu_view.xml
中创建一个xml文件,
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="Drawer Button"
android:id="@+id/actionbar_drawerbutton"
android:icon="@drawable/ic_menu_camera"
app:showAsAction="always">
</item>
<item
android:title="Red Dot"
android:id="@+id/actionbar_reddot"
android:icon="@drawable/ic_favorite"
app:showAsAction="always">
</item>
</menu>
这将处理您的所有案件。尝试这个。我相信您会获得更好的输出。
答案 4 :(得分:0)
尝试一下。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageButton
android:id="@+id/actionbar_backbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_arrow_back_black_24dp" />
<TextView
android:id="@+id/actionbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:background="?attr/actionBarItemBackground"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:layout_toRightOf="@id/actionbar_backbutton"
android:text="@string/Easybook_com"
android:textColor="@color/colorPrimaryDark"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_toRightOf="@+id/actionbar_title"
android:orientation="horizontal">
<ImageButton
android:id="@+id/actionbar_homebutton"
android:layout_width="?attr/actionBarSize"
android:layout_height="wrap_content"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside"
android:src="@drawable/ic_home_black" />
<ImageButton
android:id="@+id/actionbar_drawerbutton"
android:layout_width="?attr/actionBarSize"
android:layout_height="wrap_content"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside"
android:src="@drawable/ic_drawer" />
<ImageView
android:id="@+id/actionbar_reddot"
android:layout_width="?attr/actionBarSize"
android:layout_height="wrap_content"
android:background="?attr/actionBarItemBackground"
android:scaleType="centerInside" />
</LinearLayout>
</RelativeLayout>