ActionBar 안에 아이콘과 작업 제목을 모두 표시하는 방법은 무엇입니까?
내부에 icon
및 title
작업을 모두 표시해야합니다 ActionBar
.
" withText
"옵션을 시도했지만 효과가 없습니다.
' always | withText '는 충분한 공간이 있으면 작동하고, 그렇지 않으면 아이콘 만 배치합니다. 회전으로 휴대폰에서 테스트 할 수 있습니다.
<item android:id="@id/menu_item"
android:title="text"
android:icon="@drawable/drawable_resource_name"
android:showAsAction="always|withText" />
다음 두 가지 방법으로 텍스트로 작업을 만들 수 있습니다.
1- XML에서 :
<item android:id="@id/resource_name"
android:title="text"
android:icon="@drawable/drawable_resource_name"
android:showAsAction="withText" />
메뉴를 부 풀릴 때를 getSupportMenuInflater()
사용하고 있으므로 호출해야합니다 ActionBarSherlock
.
2- 프로그래밍 방식 :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item = menu.add(Menu.NONE, ID, POSITION, TEXT);
item.setIcon(R.drawable.drawable_resource_name);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
반드시 가져 확인 com.actionbarsherlock.view.Menu
하고 com.actionbarsherlock.view.MenuItem
.
나를 위해 일한 것은 ' always | withText '를 사용하는 것이 었습니다 . 메뉴가 많은 경우 '항상'대신 'ifRoom'을 사용하는 것이 좋습니다.
<item android:id="@id/resource_name"
android:title="text"
android:icon="@drawable/drawable_resource_name"
android:showAsAction="always|withText" />
내가 찾은 해결책은 사용자 지정 작업 레이아웃을 사용하는 것입니다. 여기에 메뉴 용 XML이 있습니다.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:Eventapp="http://schemas.android.com/apk/res-auto">
<!-- This is a comment. -->
<item
android:id="@+id/action_create"
android:actionLayout="@layout/action_view_details_layout"
android:orderInCategory="50"
android:showAsAction = "always"/>
</menu>
레이아웃은
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dp"
android:gravity="center"
android:text="@string/create"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:gravity="center"
android:src="@drawable/ic_action_v"/>
</LinearLayout>
아이콘과 텍스트가 함께 표시됩니다.
clickitem을 가져 오려면 조각 또는 활동 :
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
//super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_details_fragment, menu);
View view = menu.findItem(R.id.action_create).getActionView();
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
}
});
}
2017의 any1이 프로그래밍 방식으로이 작업을 수행하는 방법을 궁금해하는 경우 답변에서 볼 수없는 방법이 있습니다.
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
툴바에 버튼을 추가 할 수 있습니다.
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:title="title">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="16dp"
android:background="@color/transparent"
android:drawableRight="@drawable/ic_your_icon"
android:drawableTint="@drawable/btn_selector"
android:text="@string/sort_by_credit"
android:textColor="@drawable/btn_selector"
/>
</android.support.v7.widget.Toolbar>
드로어 블에 btn_selector.xml 파일 생성
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:color="@color/white"
/>
<item
android:color="@color/white_30_opacity"
/>
자바:
개인 부울 isSelect = false;
버튼에 대한 OnClickListener :
private void myClick() {
if (!isSelect) {
//**your code**//
isSelect = true;
} else {//**your code**//
isSelect = false;
}
sort.setSelected(isSelect);
}
여러분 중 일부는 훌륭한 답변을 가지고 있지만 몇 가지 추가 사항을 찾았습니다. 프로그래밍 방식으로 일부 하위 메뉴가있는 MenuItem을 만들려면 다음을 수행하십시오.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu subMenu = menu.addSubMenu(0, Menu.NONE, 0, "Menu title");
subMenu.getItem().setIcon(R.drawable.ic_action_child);
subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
subMenu.add(0, Menu.NONE, 0, "Subitem 1");
subMenu.add(0, Menu.NONE, 1, "Subitem 2");
subMenu.add(0, Menu.NONE, 2, "Subitem 3");
return true;
}
먼저 메뉴 막대에 TextView를 추가하고 setCompoundDrawables()
원하는쪽에 이미지를 배치하는 데 사용 하십시오. 마지막에 클릭 활동을 textview에 결합합니다.
MenuItem item = menu.add(Menu.NONE, R.id.menu_item_save, 10, R.string.save);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS|MenuItem.SHOW_AS_ACTION_WITH_TEXT);
TextView textBtn = getTextButton(btn_title, btn_image);
item.setActionView(textBtn);
textBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// your selector here }
});
여기에서 말 그대로 모든 것을 사용자 정의 할 수 있습니다.
public TextView getTextButton (String btn_title, Drawable btn_image) {
TextView textBtn = new TextView(this);
textBtn.setText(btn_title);
textBtn.setTextColor(Color.WHITE);
textBtn.setTextSize(18);
textBtn.setTypeface(Typeface.create("sans-serif-light", Typeface.BOLD));
textBtn.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Drawable img = btn_image;
img.setBounds(0, 0, 30, 30);
textBtn.setCompoundDrawables(null, null, img, null);
// left,top,right,bottom. In this case icon is right to the text
return textBtn;
}
app : showAsAction = "always | withText"사용. Android 4.1.1을 사용하고 있지만 어쨌든 적용 할 수 있습니다. 내 모습은 아래와 같습니다.
<item
android:id="@+id/action_sent_current_data"
android:icon="@drawable/ic_upload_cloud"
android:orderInCategory="100"
android:title="@string/action_sent_current_data"
app:showAsAction="always|withText"/>
다음과 같이하세요:
- Java 코드에 Action Bar 인스턴스 추가
final ActionBar actionBar = getActionBar();
- 홈 디스플레이 옵션 활성화
actionBar.setDisplayShowHomeEnabled(false);
- 각 활동의 매니페스트 파일에 다음 코드를 추가합니다.
android:logo=@drawable/logo and android:label="@string/actionbar_text"
나는 이것이 당신을 도울 것이라고 생각합니다
'development' 카테고리의 다른 글
Python에서 여러 파일 복사 (0) | 2020.10.16 |
---|---|
파이썬 : 소수점 1 자리 만 얻기 (0) | 2020.10.16 |
한 줄에 하나의 항목이있는 두 텍스트 파일의 차이점 찾기 (0) | 2020.10.15 |
동적이지만 정사각형 레이아웃을 수행하는 간단한 방법 (0) | 2020.10.15 |
UILabel의 textColor 속성에 애니메이션을 적용하는 방법은 무엇입니까? (0) | 2020.10.15 |