我已为自己的活动实施了自定义标题:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#3a5894" >
<LinearLayout
android:layout_width="50dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical"
android:id="@+id/left_button_title_bar_main_content_fragment"
android:background="#90C3D4"
android:onClick="onClickTitleBar">
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#90C3D4"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:id="@+id/center_textview_title_bar"
android:onClick="onClickTitleBar">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="15dp"
android:text="Quick Notes"
android:textColor="#ffffff"/>
</LinearLayout>
</RelativeLayout>
我的活动实施:
public class MainActivity extends Activity implements OnClickListener {
private LinearLayout leftButtonInTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// custom title
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
// full screen activity
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
// custom title bar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_bar);
leftButtonInTitle = (LinearLayout) findViewById(R.id.left_button_title_bar_main_content_fragment);
以及我想要处理的方法点击
public void onClickTitleBar(View v) {
int id = v.getId();
Log.e("","id : "+id);
Log.e("","button id: " + R.id.left_button_title_bar_main_content_fragment);
}
我已经注销了v.getId和linearlayout实际ID。 我已经意识到这些ID并不相同。
这是日志:
E/﹕ id 2131493001
E/﹕ button id: 2131493000
正如您所看到的,数字不一样。
知道为什么会这样吗?
感谢任何帮助。
答案 0 :(得分:0)
在xml
文件中,两个LinearLayout的onClick
属性的值相同。
可能是因为你正在获得不同的ID。
尝试为两个LinearLayouts提供不同的onClick
值。
答案 1 :(得分:0)
您已经在ID为R.id.center_textview_title_bar
的LinearLayout上设置了onClick。因为它在RelativeLayout中,并且没有设置约束,并且它是&#34;更高的&#34;按照孩子的顺序,它将显示在ID为R.id.left_button_title_bar_main_content_fragment
的LinearLayout的顶部,它将取代所有点击代替标题栏。
要解决此问题,请删除
行android:onClick="onClickTitleBar"
来自ID为R.id.center_textview_title_bar