Im designing my interfaces for my research project on android. So I added facebook kind side navigation listview. But when the itesms are added to the list view it will not get align center horizontally..I need to get the icon origin and the title in a same horizontal line. Please be kind enough to provide me a solution for my problem. Below provided my code. I’m sorry about my english.
Here is an image of my current interface. Please refer settings button. The settings word is bit upside. I need both icon and settings word aligh horizontally in same line.
image is here http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash4/485944_4792129535506_1863888545_n.jpg
slide.xml – all the items for the listview are included here
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/item_one"
android:icon="@drawable/settings"
android:title="@string/item_one"
android:top="30dp"
>
</item>
<item
android:id="@+id/item_two"
android:icon="@drawable/ic_launcher"
android:title="@string/item_three">
</item>
<item
android:id="@+id/item_three"
android:icon="@drawable/ic_launcher"
android:title="@string/item_three">
</item>
<item
android:id="@+id/item_four"
android:icon="@drawable/ic_launcher"
android:title="@string/item_four">
</item>
<item
android:id="@+id/item_five"
android:icon="@drawable/ic_launcher"
android:title="@string/item_one">
</item>
<item
android:id="@+id/item_six"
android:icon="@drawable/ic_launcher"
android:title="@string/item_two">
</item>
<item
android:id="@+id/item_seven"
android:icon="@drawable/ic_launcher"
android:title="@string/item_three">
</item>
<item
android:id="@+id/item_eight"
android:icon="@drawable/ic_launcher"
android:title="@string/item_four"
>
</item>
</menu>
slidemenu.xml – the listview is here
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="260dip"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#2c323f"
>
<ImageView
android:id="@+id/menu_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
/>
<ListView
android:id="@+id/menu_listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:background="#2c323f"
android:fadingEdge="none"
android:overScrollMode="never"
android:listSelector="#454b5d"
android:divider="@layout/divider"
android:dividerHeight="1sp"
android:cacheColorHint="#2c323f"
/>
</LinearLayout>
<FrameLayout
android:id="@+id/overlay"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
here is my activity class
package com.coboltforge.slidemenuexample;
import com.coboltforge.slidemenu.SlideMenu;
import com.coboltforge.slidemenu.SlideMenu.SlideMenuItem;
import com.coboltforge.slidemenu.SlideMenuInterface.OnSlideMenuItemClickListener;
import android.app.Activity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnSlideMenuItemClickListener {
private SlideMenu slidemenu;
private final static int MYITEMID = 42;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* There are two ways to add the slide menu:
* From code or to inflate it from XML (then you have to declare it in the activities layout XML)
*/
// this is from code. no XML declaration necessary, but you won't get state restored after rotation.
// slidemenu = new SlideMenu(this, R.menu.slide, this, 333);
// this inflates the menu from XML. open/closed state will be restored after rotation, but you'll have to call init.
slidemenu = (SlideMenu) findViewById(R.id.slideMenu);
slidemenu.init(this, R.menu.slide, this, 333);
// this can set the menu to initially shown instead of hidden
// slidemenu.setAsShown();
// set optional header image
slidemenu.setHeaderImage(getResources().getDrawable(R.drawable.ic_launcher));
// this demonstrates how to dynamically add menu items
SlideMenuItem item = new SlideMenuItem();
item.id = MYITEMID;
item.icon = getResources().getDrawable(R.drawable.ic_launcher);
item.label = "Dynamically added item";
slidemenu.addMenuItem(item);
// connect the fallback button in case there is no ActionBar
Button b = (Button) findViewById(R.id.buttonMenu);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
slidemenu.show();
}
});
}
public void onSlideMenuItemClick(int itemId) {
switch(itemId) {
case R.id.item_one:
Toast.makeText(this, "Item one selected", Toast.LENGTH_SHORT).show();
break;
case R.id.item_two:
Toast.makeText(this, "Item two selected", Toast.LENGTH_SHORT).show();
break;
case R.id.item_three:
Toast.makeText(this, "Item three selected", Toast.LENGTH_SHORT).show();
break;
case R.id.item_four:
Toast.makeText(this, "Item four selected", Toast.LENGTH_SHORT).show();
break;
case MYITEMID:
Toast.makeText(this, "Dynamically added item selected", Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home: // this is the app icon of the actionbar
slidemenu.show();
break;
}
return super.onOptionsItemSelected(item);
}
}
I’m guessing you use this library. The problem is that you can’t access the layout file that is used for the row view of the sliding menu adapter to modify it. But you can easily solve this if you copy the library’s code(which consists of very few files) and put it directly in your project. Then modify the
slidemenu_listitem.xmlfile like this:Of course, you can always make a feature request to the user how made the library to modify it so you can insert your own layout file in the library(and wait for that to happen).